UI、粒子、动画这三个物品的渲染层级设置
1.描述问题
需求:通过UGUI制作一个界面之后,我需要在界面的后面跟前面各添加一个特效。
问题:同一层级UI是最后渲染的,所以UI永远是在最上面
解决:分别调整UI、粒子系统、动画这三个物品的渲染层级
解决方案
(1) UI:添加Canvas组件控制,勾选Override Sorting之后可以设置Sorting Layer和 Order in Layer
(2) 粒子系统:设置Render下的Sorting Layer和 Order in Layer
(3) 动画:
a.代码修改Mesh Renderer的Sorting Layer和 Order in Layer,Mesh Renderer在预制体上无法直接修改,但是继承于Renderer ,是有Sorting Layer和 Order in Layer参数可以修改的
b.挂上Sorting Group组件直接在预制体里修改
方案优化
使用统一的脚本组件挂于UI或者特效上,用于设置当前Object及所有子物体的层级。
优点:(1)组件统一,可以在代码里遍历修改
public class UIEffectDepth : MonoBehaviour
{
// Start is called before the first frame update
void <