Unity 根据渲染器的类型和用途,按照优先级顺序对它们进行排序。您可以通过它们的渲染队列来指定渲染器的渲染顺序。一般来说,有两个主要的队列:不透明队列和透明队列。2D 渲染器主要位于透明队列中,包括精灵渲染器一个组件,允许您将图像显示为精灵,用于 2D 和 3D 场景。 更多信息
参见术语表、Tilemap 渲染器和精灵形状渲染器类型。
透明队列中的 2D 渲染器通常遵循以下优先级顺序
还有一些其他因素可能导致排序顺序与常规优先级顺序不同。这些因素因项目而异。
所有 2D 渲染器都可以通过检视面板一个 Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
参见术语表窗口或通过 Unity 脚本 API 使用排序层和层级顺序(在渲染器的属性设置中)。将渲染器设置为现有的排序层或创建一个新的排序层以确定其在渲染队列中的优先级。更改层级顺序的值以设置渲染器在同一排序层中其他渲染器之间的优先级。
您可以在渲染器的材质设置或其材质的着色器在 GPU 上运行的程序。 更多信息
参见术语表设置中指定渲染器的渲染队列类型。这对于对使用不同材质的渲染器进行分组和排序很有用。有关更多详细信息,请参阅有关ShaderLab:子着色器标签的文档。
摄像机组件根据其投影设置对渲染器进行排序。这两个选项是透视和正交。
在此模式下,渲染器的排序距离是从渲染器到摄像机一个创建场景中特定视点的图像的组件。输出要么绘制到屏幕上,要么捕获为纹理。 更多信息
参见术语表位置的直接距离。
渲染器的排序距离是渲染器的位置与沿着摄像机视角方向的摄像机之间的距离。对于默认的 2D 设置,这是沿着 (0, 0, 1) 轴。
当您将摄像机组件设置为透视或正交时,Unity 会自动设置摄像机的TransparencySortMode以匹配所选模式。您可以通过两种方式手动设置透明度排序模式
摄像机透明度排序模式设置位于项目设置(主菜单:编辑 > 项目设置 > 图形)的图形类别下。当此设置为默认值时,摄像机组件的投影设置优先。当此设置为除默认值以外的其他选项时,摄像机组件的投影设置保持不变,但摄像机的透明度排序模式更改为该选项。
通过项目设置和脚本 API 可用的另一个选项是自定义轴排序模式。
选择此模式可根据您在项目设置中设置的自定义轴上的距离对渲染器进行排序(主菜单:编辑 > 项目设置 > 图形 > 透明度排序轴)。这通常用于具有等距 Tilemap的项目,以便正确排序和渲染 Tilemap 上的 Tile 精灵。有关更多信息,请参阅创建等距 Tilemap。
注意:如果您的项目是 2D 通用渲染管线一系列操作,这些操作获取场景的内容并在屏幕上显示它们。Unity 允许您从预构建的渲染管线中选择,或编写您自己的渲染管线。 更多信息
参见术语表(URP) 项目,则项目设置中不可用透明度排序模式,而是配置在 2D 渲染器资源属性中。有关更多信息,请参阅配置 2D 渲染器资源文档。
默认情况下,精灵2D 图形对象。如果您习惯于使用 3D,则精灵本质上只是标准纹理,但有一些特殊的技术可以组合和管理精灵纹理,以便在开发过程中提高效率和便利性。 更多信息
参见术语表的排序点设置为其中心,并且 Unity 会测量摄像机变换位置与精灵中心之间的距离,以在排序过程中确定其渲染顺序。另一个选项是在世界空间中将其精灵的排序点设置为其枢轴位置。在精灵的精灵渲染器属性设置中选择枢轴选项,并在精灵编辑器中编辑精灵的枢轴位置。
排序组是一个组件,它将共享一个公共根的渲染器组合在一起以进行排序。同一排序组中的所有渲染器共享相同的排序层、层级顺序和到摄像机的距离。有关更多详细信息,请参阅有关排序组组件及其设置的文档。
Unity 会将具有相同材质设置的渲染器组合在一起,以提高渲染性能,例如使用动态批处理一个自动的 Unity 过程,尝试将多个网格渲染为单个网格,以优化图形性能。该技术在 CPU 上转换所有游戏对象顶点,并将许多类似顶点组合在一起。 更多信息
参见术语表。
当多个渲染器具有相同的排序优先级时,决胜负因素是 Unity 将渲染器放置在渲染队列中的顺序。因为这是一个您无法控制的内部过程,所以您应该使用排序选项(例如排序层和排序组)来确保所有渲染器都具有不同的排序优先级。