Author :JerryYang
Create by 2020.03.24
影响UI层级的因素很多,这里我们一起研究一下:
1. 节点树中的顺序
这一点相信大家都很清楚,在同一节点下,其他设置一致的情况时,越后创建的对象层级越高,如上图:Image2的层级比Image1高。这种情况下我们想要动态控制层级的时候可以通过以下API控制:
SetAsFirstSibling //设置到最底层
SetAsLastSibling //设置到最顶层
SetSiblingIndex //设置到指定层
2. Sorting Layers
Image2 在节点树上层,但是他的Sorting Layer为Bottom,所以的层级在Image1的下面。
3. Sort Order
我不动节点树中的顺序,分别给 Image1 和 Image2 挂上Canvas组件,然后把 Image1 上的Sort Order设置为1,Image1 上的 Sort Order设置为0,此时 Image1 的层级位于 Image2 之上。
4. Plane Ditance
Canvas距离相机的距离也会影响层级关系,如图:
上图Canvas的Plane Ditance 为0,Canvas (1)的Plane Ditance为10,因此Canvas在上层。
- 如果Sort Order不同,优先Sort Order;
- Plane Ditance的值如果和相机近裁剪(Near)面的值一样会导致Scrollview划不动。
5. Z轴
在UGUI中,Z轴不会影响他的渲染顺序。
影响的优先级
Sorting Layers > Sort Order > Plane Ditance > 节点树中的顺序