Unity-Ugui渲染模式

Canvas组件下的RenderMode有3种:

       Screen Space - Overlay (覆盖模式);

      Screen Space - Camera (摄像机模式);

      World Space (世界模式)

--------------------------------------------------------------------------------------------------------------------------------------------------
    1、Screen Space-Overlay 渲染到屏幕空间,覆盖模式。这个模式下Rect Transform是锁定的


    2、Screen Space-Camera渲染到屏幕空间,用摄像机来渲染。

    可以更改Plane Distance来更改画布到摄像机的距离。这个模式下Rect Transform也是锁定的


    3、World Space渲染到世界空间。

    Event Camera接收事件。Sorting Layer同上,用来控制渲染顺序,越往下的越靠前。
    Order In Layer也是用来控制渲染顺序。Sorting Layer占据主导权。
    在同一个Layer时,Order Ln Layer才起作用。这个模式可以改变Rect Transform

----------------------------------------------------------------------------------------------------------------------------------------------------------

Screen Space-Overlay 渲染模式

由于不依赖摄像机渲染,使得其无法通过修改Z轴的方式修改物体间的层级关系:


 (1)相同canvas下:

     渲染顺序与hierarchy面板里物体的摆放顺序有关,上面的先渲染,下面的后渲染。
     

    也可动态的修改图片之间的遮挡关系:
     transform.GetSiblingIndex(); //获取渲染层级

     transform.SetAsLastSibling() //最后渲染

     transform.SetAsFirstSibling()  //先渲染
     transform.SetSiblingIndex(int index);  //index值越大,越后渲染。

   
 (2)不同Canvas下:

当渲染模式都为Overlay:
        渲染顺序是由canvas组件下的Sort Order决定的,值越大的越后渲染。
    

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Screen Space-Camera渲染模式

1.不同Camera的Depth,谁大谁在前面.参数相同遵循刷油漆原则,即是看见部分的UI先渲染,看见完整UI后渲染

2. 同Camera且Depth 相同时,根据Sorting Layer 先后顺序决定,Sorting Layer 一样,再根据Order in Layer 判断,

若都相同则根据Z轴 决定

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

World Space渲染模式

不同canvas下,渲染顺序由canvas组件下的Sortint Layer顺序决定,顺序越后则越后渲染。
         如果Layer值都相同的情况下,渲染顺序由Order in Layer决定,值越大越后渲染。
         特别注意,当Layer和Order值都相同的情况下,此时渲染顺序由canvas距离Render Camera的距离决定,距离越近越后渲染。

( 只有World模式有这种情况,因其他模式下canvas都是位置固定不可移动的。并且以上情况只考虑canvas都出现在Render Camera摄像范围的情况下。)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

不同canvas 且 各种渲染模式都存在的情况下
       首先,Overlay模式的canvas永远是最后渲染,并且同为Overlay模式的canvas在Sort Order的值越大时越后渲染。
       其次,Camera和Overlay同时存在的情况下有两种情况:若使用的不同的相机,则由摄像机的Depth决定,值越大越后渲染。若使用的是相同的相机,则是由canvas距离摄像机的距离决定的,距离越近的越后渲染。

 

你可能感兴趣的:(Unity)