Version: 6000.3
语言: 中文
2D游戏美术风格参考
精灵

2D 渲染器排序

概述

Unity 根据渲染器的类型和用法的优先级顺序对渲染器进行排序。你可以通过渲染器的渲染队列来指定渲染器的渲染顺序。通常,有两个主要队列:不透明队列透明队列。2D 渲染器主要位于透明队列中,包括精灵渲染器一个组件,可让您将图像显示为精灵,以便在 2D 和 3D 场景中使用。更多信息
请参阅术语表
图块贴图渲染器和精灵形状渲染器类型。

按优先级排列的透明队列排序顺序

透明队列中的2D渲染器通常遵循以下优先级顺序:

  1. 对图层和图层中的顺序进行排序

  2. 指定渲染队列

  3. 到摄像机的距离

  4. 排序组

  5. 材质/着色器

  6. 决胜局

还有其他因素可能导致排序顺序与常规优先级顺序不同。这些因素因项目而异。

对图层和图层中的顺序进行排序

排序层(Sorting Layer) 和 层顺序(在渲染器的属性设置中)可通过检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
窗口或通过 Unity Scripting API 进行。将渲染器设置为现有的排序层或创建一个新的排序层以确定其在渲染队列中的优先级。更改 层中的顺序(Order in Layer) 的值,以设置渲染器在同一排序层内其他渲染器中的优先级。

指定渲染队列

你可以在渲染器的材质设置或着色器在 GPU 上运行的程序。更多信息
请参阅术语表
设置。这对于对使用不同材质的渲染器进行分组和排序非常有用。有关更多详细信息,请参阅有关 ShaderLab:SubShader 标签的文档。

到摄像机的距离

Camera 组件根据其 Projection 设置对渲染器进行排序。两个选项是透视正交。

透视

在此模式下,渲染器的排序距离是渲染器与相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
的位置。

正交

渲染器的排序距离是渲染器与摄像机沿摄像机视图方向的位置之间的距离。对于默认的 2D 设置,这是沿 (0, 0, 1) 轴。

当您将 Camera 组件设置为 PerspectiveOrthographic 时,Unity 会自动设置 Camera 的 TransparencySortMode 以匹配所选模式。您可以通过两种方式手动设置透明度排序模式:

  • 打开项目设置广泛的设置集合,允许您配置物理、音频、网络、图形、输入和项目的许多其他区域的行为方式。更多信息
    请参阅术语表
    ,然后转到 图形(Graphics),然后在 摄像机设置(Camera Settings) 下使用透明排序模式(Transparent Sort Mode)
  • 通过脚本API设置摄像机的TransparencySortMode

摄像机透明度排序模式设置位于项目设置(Project Settings)的图形类别下(主菜单:编辑>项目设置>图形)。当将其设置为默认(Default) 时,摄像机组件的投影(Projection) 设置优先。当将其设置为默认(Default) 以外的选项时,摄像机组件的投影(Projection) 设置保持不变,但摄像机的透明度排序模式(Transparency Sort Mode) 将更改为该选项。

通过项目设置和脚本API提供的另一个选项是自定义轴排序模式

自定义轴排序模式

选择此模式可根据渲染器沿你在项目设置中设置的自定义轴的距离对渲染器进行排序(主菜单:编辑>项目设置>图形>透明度排序轴)。这通常用于具有等距图块贴图的项目中,以在图块贴图上正确排序和渲染图块精灵。有关更多信息,请参阅创建等距图块贴图

注意: 如果您的项目是 2D 通用渲染管线获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管线中进行选择,或编写自己的渲染管线。更多信息
请参阅术语表
(URP) 项目中,透明度排序模式项目设置中不可用,而是在 2D 渲染器资产属性中配置。有关更多信息,请参阅配置 2D 渲染器资产文档。

Sprite排序点

默认情况下,一个精灵A 2D 图形对象。如果你习惯于在3D中工作,精灵本质上只是标准纹理,但有一些特殊的技术可以组合和管理精灵纹理,以提高开发过程中的效率和便利性。更多信息
请参阅术语表
排序点 设置为其中心,Unity 测量摄像机的变换位置与精灵中心之间的距离,以确定它们在排序期间的渲染顺序。另一种选择是将精灵的排序点设置为其在世界空间中的枢轴位置。在精灵的 Sprite 渲染器属性设置中选择 枢轴(Pivot) 选项,然后在精灵编辑器中编辑精灵的枢轴位置。

排序组

排序组(Sorting Group) 是一个组件,用于将共享公共根的渲染器分组在一起,以进行排序。同一排序组中的所有渲染器共享相同的排序层、层顺序(Order in Layer)和到摄像机的距离(Distance to Camera)。有关更多详细信息,请参阅有关排序组组件及其设置的文档。

材质/着色器

Unity 将具有相同材质设置的渲染器排序在一起,以获得更高效的渲染性能,例如动态批处理一种自动 Unity 过程,它尝试将多个网格呈现为单个网格,以优化图形性能。该技术转换 CPU 上的所有游戏对象顶点,并将许多相似的顶点组合在一起。更多信息
请参阅术语表
.

决胜局

当多个渲染器具有相同的排序优先级时,决胜局是 Unity 将渲染器放置在渲染队列中的顺序。因为这是一个您无法控制的内部过程,所以您应该使用排序选项(例如排序排序组)来确保所有渲染器具有不同的排序优先级。

2D游戏美术风格参考
精灵