参考链接:(51条消息) unity 两个相机叠加 - CSDN
(51条消息) 【Unity】鼠标点击在屏幕上产生特效_SuperWiwi的博客-CSDN博客_unity点击特效
(51条消息) Unity中实现粒子效果显示在UI上_Hello Bug.的博客-CSDN博客_unity粒子线条
我的需求是在内置管线下显示粒子特效显示在UI上,查了一些资料,经过一些尝试终于完成下面记录一下实现细节
首先除了主相机外在建一个相机,用于显示Ui的,然后Clear Flags设置为Depth Only,主相机保持原来设置不变,将Canvas的RenderMode设置为Screen Space - Camera, 然后将RenderCamera设置为新建的相机,然后在相机上挂上如下脚本
using UnityEngine;
public class ClickEffect : MonoBehaviour
{
Vector3 point;
GameObject effectGo;
[SerializeField]
Camera car;
void Start()
{
effectGo = Resources.Load<GameObject>("Prefabs/ClickEffect");
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
//获得鼠标点击点
point = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 4f);
point = car.ScreenToWorldPoint(point);//从屏幕空间转换到世界空间
GameObject go = Instantiate(effectGo);//生成特效
go.transform.position = point;
Destroy(go, 0.5f);
}
}
}
相机设置为新建的相机,这样就完成了