UGUI_不添加摄像机解决UI与UI特效叠层
找到一個不用添加多個Camera在兩個UI中疊加UI特效的方法。
?
代碼:
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | using UnityEngine; using System.Collections; using UnityEngine.UI; ? ? public class UIDepth : MonoBehaviour { ????public int order; ????public bool isUI = true; ????void Start () ????{ ????????if(isUI){ ????????????Canvas canvas = GetComponent<Canvas>(); ????????????if( canvas == null){ ????????????????canvas = gameObject.AddComponent<Canvas>(); ????????????} ????????????canvas.overrideSorting = true; ????????????canvas.sortingOrder = order; ????????} ????????else ????????{ ????????????Renderer []renders??=??GetComponentsInChildren<Renderer>(); ? ? ????????????foreach(Renderer render in renders){ ????????????????render.sortingOrder = order; ????????????} ????????} ????} } |
?
原理就是設置 sortingOrder ,給需要修改order的UI元素掛上UIDepth腳本 。如下圖所示,在UI容器中設置order。
注意: UI0 我設置了order =0 (可以不設置,因為默認所有UI的Order都是0)
? ? ? ? ? ?ParticleSystem?我設置了order =1?
? ? ? ? ? ?UI2?我設置了order =2?
所以效果是,UI2 擋住?ParticleSystem 擋住 UI0
?
總結
以上是生活随笔為你收集整理的UGUI_不添加摄像机解决UI与UI特效叠层的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UGUI_不规则按钮的响应区域
- 下一篇: UGUI_忽略UI被拦截事件