UGUI:canvas渲染顺序

-
-
2024-06-26

在Unity引擎中,UI元素可以使用不同的渲染模式,包括屏幕空间覆盖(Screen Space-Overlay)、屏幕空间相机(Screen Space-Camera)和世界空间(World Space)。

屏幕空间覆盖(Screen Space-Overlay)

在屏幕空间覆盖模式下,UI元素会被绘制到屏幕上,不受摄像机或摄像机剔除层的影响。这意味着无论摄像机的位置如何,UI元素都会始终显示在屏幕的最上层。此模式下的Canvas排序按照Canvas组件的sort order进行排序,数值越大的元素会显示在更上层。而且,如果屏幕大小或分辨率发生变化,Canvas会自动调整大小。

屏幕空间相机(Screen Space-Camera)

在屏幕空间相机模式下,UI元素会被放置在相对于摄像机的位置上。这意味着UI元素会受到摄像机参数的影响,同时也具有真正的Z轴。如果UI元素不在摄像机的裁剪空间内,则无法显示。此模式下的Canvas没有sort order,而是使用sorting layer和order in layer进行排序。当两个Canvas设置完全一样,其下的z也一样时,渲染顺序会变得复杂,此时根据Canvas的z轴值,z越大的元素会显示在下层。

世界空间(World Space)

在世界空间模式下,UI元素按照3D空间的表现来渲染,主要用于实现3D UI效果。

 渲染排序

在屏幕空间相机模式下,渲染排序受到多个因素的影响。摄像机的Depth越大,越显示在上层。在相同Depth情况下,Canvas所在的sorting layer不同,层级越下,越显示在上层。而在sorting layer相同的情况下,order in layer不同的元素,值越大,越显示在上层。如果出现两个Canvas设置完全一样,其下的z也一样的情况,根据Canvas的z轴值,z越大的元素会显示在下层。


PS:在 Unity 中,Canvas 是用于呈现 2D UI 元素的重要组件。Canvas 允许你在屏幕空间中放置 UI 元素,并控制它们的外观和行为。以下是 Canvas 的一些常见属性及参数的解释:

  1.  Render Mode (渲染模式):
    •  Screen Space - Overlay: Canvas 将覆盖在场景的上方,不会随着相机的移动而移动。
    • Screen Space - Camera: Canvas 将渲染到指定的摄像机上,可以通过设置 Plane Distance 来控制 Canvas 距离摄像机的距离。
    • World Space: Canvas 将作为 3D 对象存在,可以在场景中移动和旋转。
  2. Plane Distance (平面距离):
    • 当 Canvas 的 Render Mode 设置为 Screen Space - Camera 时,可以通过设置 Plane Distance 来控制 Canvas 距离摄像机的距离。
  3.  Sort Order (排序顺序):
    • 控制 Canvas 在屏幕空间中的渲染顺序,值越大的 Canvas 将会覆盖值较小的 Canvas。
  4. Reference Resolution (参考分辨率):
    • 用于指定设计 UI 时所参考的分辨率。在不同分辨率下,Canvas 可以根据参考分辨率进行缩放以适应屏幕。
  5. Scaler Match Mode (缩放匹配模式):
    • Match Width or Height: 根据屏幕的宽度或高度进行缩放,另一方向会出现空白区域。
    • Expand: 按照参考分辨率进行缩放,不会出现空白区域,但可能会变形。
  6. UI Scale Mode (UI 缩放模式):
    • Constant Pixel Size: UI 元素的大小将保持不变,不会随着屏幕的缩放而改变。
    • Scale with Screen Size: UI 元素的大小将根据屏幕的缩放而改变。
  7. Reference Pixels Per Unit (参考像素每单位):
    • 用于指定设计 UI 时的像素比例,影响 UI 元素在屏幕上的大小。
  8. Pixel Perfect (像素完美):
    • 当启用时,UI 元素将会以像素为单位进行渲染,适用于像素风格的游戏。

 

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录