Version: Unity 6.0 (6000.0)
语言 : 中文
对排序组中的渲染器进行排序
排序组参考

使用排序组

创建 2D 多精灵角色的最常见方法是在层级视图 (Hierarchy) 窗口中一起排列多个精灵渲染器并将它们设置为子代,从而形成一个角色。这时可以使用排序组 (Sorting Groups) 来协助管理这种复杂的多精灵角色。

在以下示例中,精灵渲染器属于同一排序层 (Sorting Layer),但是具有不同的层顺序 (Order in Layer) 值。Unity 会按照您希望的角色不同部分的出现顺序对这些部分进行排序。

层级视图中的角色预制件及其各部分。
层级视图中的角色预制件及其各部分。

配置排序组和排序层之后,可以将角色另存为预制件 (Prefabs),并根据需要进行多次克隆。

但是,预制件精灵全部具有相同的排序层 (Sorting Layer)层顺序 (Order in Layer) 值,并且与其他预制件一起渲染到相同层,这可能会导致一个预制件角色的不同部分错误地相交和分层。

两个预制件的精灵错误相交,因为 Unity 在相同层上渲染精灵。
两个预制件的精灵错误相交,因为 Unity 在相同层上渲染精灵。

为了确保预制件的渲染顺序一致以便正确显示,请将 Sorting Group 组件添加到每个预制件的根游戏对象。保存编辑后的预制件,使所有当前和将来的预制件实例也具有 Sorting Group 组件。

每个预制件应具有一个 Sorting Group 组件,且该组件的排序层 (Sorting Layer)层顺序 (Order in Layer) 属性设置相同。这可能导致在同一排序层 (Sorting Layer) 上的预制件中的渲染器具有不一致的渲染方式,因为这些渲染器在渲染器队列 (Render Queue) 中的优先级相同。

为了避免此问题,请向每个预制件的 Sorting Group 组件提供一个唯一的层顺序 (Order in Layer) 值。Unity 首先渲染层顺序 (Order in Layer) 值较小的排序组,然后值较大的排序组将覆盖值较小的排序组。请参阅标签和层以了解关于对排序层 (Sorting Layers) 进行编辑和重新排序的更多信息。

每个预制件都有一个 Sorting Group 组件,且该组件具有唯一的层顺序 (Order in Layer) 值,因此可以确保 Unity 正确渲染每个角色及其部分。

SortingGroup

对排序组中的渲染器进行排序
排序组参考