Unity中粒子效果显示在UI上

一:为什么默认模式下粒子效果不能显示在UI上

因为Canvas的默认渲染模式是Screen Space-Overlay,这种模式下的Canvas在屏幕空间中渲染,会显示在场景的最上方,也就是说一切UI都显示在最上层,而粒子系统是在世界空间中渲染的,所以会被遮挡住


二:实现

——将Canvas的渲染模式改为Screen Space-Camera并指定一个相机,新建一个Layer:Effect
MainCamera用于渲染各种3D/2D的游戏物体,Depth最小,只渲染除了UI和Effect层外的物体,渲染在最后
UICamera用于渲染UI元素,Depth比MainCamera大,只渲染UI层的物体,渲染在中间
EffectCamera用于渲染特效相关,Depth最大,只渲染Effect层的物体,渲染在最前面
注意UICamera和EffectCamera的Clear Flags需要设置为Depth only

 

——将粒子效果的层设置为Effect即可