制作中比如作一个sprite作为2d动画序列帧渲染动画,想要添加店particle system ,
(假如修改了sprite的Order in Layer > 0)那么此时会发生粒子系统无法在sprite前面显示,因为系统中默认的layer是
default,对应的Sorting Order为0,就会出现sprite挡住了particle system, 在3d场景视图中就可以很明显地看到,那么就需要
写个脚本去修改Sorting Order,
代码如下所示:(只需要挂在particle system下就可以了,不过要执行游戏后才有效果)
using UnityEngine;
using System.Collections;
public class RendererHandle : MonoBehaviour {
public int order;
public string layerName;
// Use this for initialization
void Start () {
GetComponent<Renderer> ().sortingLayerName = layerName;
GetComponent<Renderer> ().sortingOrder = order;
}
}
也可以通过particle system中的Render面板属性修改,可以直接看到效果(前面的做法是参照网上资料的,后面的做法是看到5.0后,把Renderer作为Component,所以在属性中可以查询到该组件),如下图所示:
参考文章:http://www.iverv.com/2015/02/unity-2dparticlesystemsprite.html