
使用Unity开发游戏时,正确设置UI和对象的显示顺序非常重要,在这篇文章中,3D天堂将介绍将UI和对象置于前台的具体方法。
使用层次结构顺序更改显示顺序
可以使用层次结构顺序轻松更改显示顺序,层次结构中元素的顺序反映在显示顺序中。

只需拖动层次结构上的UI或对象并更改顺序即可调整显示顺序。
层次结构中较低的元素显示在前面,使操作直观。
使用画布渲染模式设置显示在前面
通过将Canvas的渲染模式设置为屏幕空间 – 叠加或屏幕空间 – 相机,可以始终在前台显示UI元素。

- 屏幕空间 – 叠加模式将UI叠加在屏幕上
- 屏幕空间 – 相机模式将其显示在特定相机前面,允许根据相机设置进行调整。
这可确保UI元素始终位于顶部,而不是隐藏在其他对象后面。
使用排序层和层中顺序的方法
通过使用排序图层和图层顺序,可以详细设置绘制顺序。
当多个UI元素重叠时,这尤其有用。
通过启用Canvas组件的覆盖排序并设置Sorting Layer和Order in Layer的值,可以精确控制UI元素的绘制顺序。

这可以轻松地将UI元素带到想要显示在其他元素之上的前面。
使用脚本更改显示顺序
还可以使用脚本更改显示顺序,通过设置Renderer组件的sortingOrder属性,可以始终将特定对象显示在前面。(脚本从这里下载)
using UnityEngine;
public class ChangeTheDisplayOrderOfRenderer : MonoBehaviour
{
private Renderer rend;
void Start()
{
rend = GetComponent();
rend.sortingOrder = 1; // 调整数值,设定显示顺序
}
}
该方法允许使用脚本灵活地管理显示顺序。
将世界空间UI置于最前面
可以通过调整相机的深度值将世界空间UI带到前面。
如果要将世界空间中的UI置于最前面,请使用额外的相机并将该相机的深度值设置为大于其他相机。

这可确保该摄像头看到的UI始终显示在前面。
附加摄像头可更好地控制UI和3D对象的显示顺序:citation[oaicite:0]{index=0}
。
其他显示顺序控制技术
Unity还有其他几种控制显示顺序的技术。
调整Z坐标

可以通过调整对象的Z坐标来控制显示顺序,Z坐标越小,物体离相机越近,越出现在前面。
使用SortingGroup组件
SortingGroup组件可以用于将多个Renderer聚合为一个组,这样就可以统一整个群组的显示顺序。

SortingGroup组件也是通过设置Sorting Layer和Order in Layer的值
这样一来,就省去了设定各个部分的显示顺序的麻烦。
总结
通过结合以上方法,可以灵活控制Unity中的UI和对象显示顺序。