Unity 关于特效和UI显示的优先级问题

转载: https://blog.csdn.net/qq_35037137/article/details/88602069

渲染优先级

渲染优先级有不同层次的控制

1.不同摄像机之间,通过Depth 来控制渲染顺序,这个优先级最高。

2.相同Depth情况下,通过修改SotingLayer来确定渲染顺序

3.相同SotingLayer下,通过sortingOrder(特效中叫做 Order in layer) 来控制。 

Camera.Depth-> Canvas.SotingLayer->Canvas.OrderInLayer

UGUI 的Canvas 的render mode (渲染模式)的选择

渲染模式分为三种

1.Screen Space - Overlay  覆盖模式

此模式  不需要摄像机。Canvas自适应屏幕大小,不经过投影空间,直接在屏幕上绘制

这种适合做纯2D游戏。  缺点是对特效不友好,因为界面永远显示在屏幕最前方

会在任何情况下都会遮挡住特效。

2.ScreenSpace - Camera  屏幕坐标,相机模式

Canvas自适应屏幕大小,UI由相机负责渲染,这种非2D游戏都运用。

由于是相机负责渲染,所以,特效可以被显示出来。可以用UI相机显示,

也可以又专门的特效相机或者主相机渲染。不同相机之间,通过Depth来

控制渲染优先级,相同相机或者Depth之间,通过SortingOrder来控制

渲染优先级。

3.WorldSpace  世界坐标,相机模式

Canvas不会自适应屏幕大小,UI相当于是平面物体,UI的大小和位置是

通过UI和相机之间的距离 和位置来决定的。 适合制作角色头顶的血条等

原文地址:https://www.cnblogs.com/roger-jc/p/13671793.html