particle system 渲染在sprite之後,修改渲染層級(即要在sprite之前)
阿新 • • 發佈:2019-01-02
製作中比如作一個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;
publicclassRendererHandle:MonoBehaviour{
publicintorder;
publicstringlayerName;
//Usethisfor initialization
voidStart(){
GetComponent<Renderer>().sortingLayerName=layerName;
GetComponent<Renderer>().sortingOrder=order;
}
}
也可以通過particle system中的Render面板屬性修改,可以直接看到效果(前面的做法是參照網上資料的,後面的做法是看到5.0後,把Renderer作為Component,所以在屬性中可以查詢到該元件),如下圖所示: