在游戏对象上添加 SortingGroup 组件将确保游戏对象的所有后代中的渲染器将被排序并一起渲染。
使用 SortingGroup 的常见用例是创建由多个 SpriteRenderer 组成的复杂 2D 角色。当多个此类角色的克隆重叠时,它们各自的身体部位可能无法正确排序,从而导致视觉故障,即身体部位相互交错。例如,两个角色的手可能会排序在身体前面,而您期望一个完整的角色绘制在另一个角色前面。SortingGroup 组件通过确保角色的整个分支一起排序和渲染来解决此问题。
SortingGroup 的后代使用相同的 SortingLayer 和 Renderer.sortingOrder 排序。但是,它们仅针对 SortingGroup 的其他后代排序,而不是针对其外部的任何渲染器排序。这允许您重用相同的 SortingLayer(例如,“手”、“躯干”...)来对身体部位进行排序,同时确保它们永远不会与角色的其他克隆交错。
SortingGroup 与其他渲染器一起使用 SortingLayer 和 Renderer.sortingOrder 进行排序。此外,它们可以嵌套在其他 SortingGroup 中。这对于您拥有不应混淆的后代分支(例如,“左手”与“右手”层次结构分支)非常有用。
排序组和渲染器的最大数量为 4096。
.
sortAtRoot | 忽略任何父 SortingGroup 并针对根级别的其他渲染器对自身及其后代渲染器进行排序。 |
sortingLayerID | 渲染器的排序层的唯一 ID。 |
sortingLayerName | 渲染器的排序层的名称。 |
sortingOrder | 渲染器在排序层中的顺序。 |
UpdateAllSortingGroups | 立即更新所有排序组。 |
enabled | 启用的行为将被更新,禁用的行为将不被更新。 |
isActiveAndEnabled | 报告游戏对象及其关联的行为是否处于活动状态且已启用。 |
gameObject | 此组件所附加的游戏对象。组件始终附加到游戏对象。 |
tag | 此游戏对象的标签。 |
transform | 附加到此游戏对象的变换。 |
hideFlags | 对象是否应该隐藏、与场景一起保存或由用户修改? |
name | 对象的名称。 |
BroadcastMessage | 在该游戏对象或其任何子级中的每个 MonoBehaviour 上调用名为 methodName 的方法。 |
CompareTag | 将游戏对象的标签与定义的标签进行比较。 |
GetComponent | 获取对与指定组件相同游戏对象上的类型为 T 的组件的引用。 |
GetComponentInChildren | 获取对与指定组件相同游戏对象或游戏对象的任何子级上的类型为 T 的组件的引用。 |
GetComponentIndex | 获取组件在其父游戏对象上的索引。 |
GetComponentInParent | 获取对与指定组件相同游戏对象或游戏对象的任何父级上的类型为 T 的组件的引用。 |
GetComponents | 获取对与指定组件相同游戏对象上的类型为 T 的所有组件的引用。 |
GetComponentsInChildren | 获取对与指定组件相同游戏对象及其任何子级上的类型为 T 的所有组件的引用。 |
GetComponentsInParent | 获取对与指定组件相同游戏对象及其任何父级上的类型为 T 的所有组件的引用。 |
SendMessage | 在该游戏对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。 |
SendMessageUpwards | 在该游戏对象中的每个 MonoBehaviour 以及行为的每个祖先上调用名为 methodName 的方法。 |
TryGetComponent | 获取指定类型的组件(如果存在)。 |
GetInstanceID | 获取对象的实例 ID。 |
ToString | 返回对象的名称。 |
Destroy | 删除游戏对象、组件或资源。 |
DestroyImmediate | 立即销毁对象 obj。强烈建议您使用 Destroy 代替。 |
DontDestroyOnLoad | 在加载新场景时不要销毁目标对象。 |
FindAnyObjectByType | 检索类型为 type 的任何活动已加载对象。 |
FindFirstObjectByType | 检索类型为 type 的第一个活动已加载对象。 |
FindObjectsByType | 检索类型为 type 的所有已加载对象的列表。 |
Instantiate | 克隆对象 original 并返回克隆。 |
InstantiateAsync | 捕获原始对象(必须与某个游戏对象相关)的快照,并返回 AsyncInstantiateOperation。 |
bool | 对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用以查看它们是否引用相同对象。 |