UGUI_不添加摄像机解决UI与UI特效叠层

来源:互联网 发布:mac svn客户端 编辑:程序博客网 时间:2024/05/18 21:51

找到一个不用添加多个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 ,给需要修改orderUI元素挂上UIDepth脚本。如下图所示,在UI容器中设置order

注意: UI0 我设置了order =0 (可以不设置,因为默认所有UIOrder都是0

           ParticleSystem 我设置了order =1 

           UI2 我设置了order =2 

所以效果是,UI2 挡住 ParticleSystem 挡住 UI0