particle system 渲染在sprite之后,修改渲染层级(即要在sprite之前)

制作中比如作一个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

你可能感兴趣的:(particle system 渲染在sprite之后,修改渲染层级(即要在sprite之前))