将 SortingGroup 组件添加到 GameObject 会确保 GameObject 后代中的所有渲染器都一起进行排序和渲染。
使用 SortingGroup 的一个常见用例是创建由多个 SpriteRenderer 组成的复杂 2D 角色。当这种角色的多个克隆发生重叠时,其身体的各部位可能排序有误,导致身体部位发生交叠的视觉错误。例如,两个角色双手的排序顺序可能在其身体之前。对于这种情况,您会期望先绘制一个完整角色,然后再绘制另一个角色。SortingGroup 组件通过确保将角色的整个分支一起进行排序和渲染来解决这一问题。
SortingGroup 的后代使用相同的 SortingLayer 和 Renderer.sortingOrder 进行排序。但是,它们仅针对 SortingGroup 的其他后代进行排序,外部没有任何渲染器。这使您可以重复使用相同的 SortingLayer(例如“Hands”、“Torso”...)对身体部位进行排序,同时确保绝不会与角色的其他克隆发生交叠。
SortingGroup 与其他渲染器一起使用 SortingLayer 和 Renderer.sortingOrder 进行排序。此外,它们可以嵌套在其他 SortingGroup 中。如果您具有不应混合的后代分支(例如“Left Hand”与“Right Hand”层级视图分支),则这十分有用。
.
sortingLayerID | 渲染器排序图层的唯一 ID。 |
sortingLayerName | 渲染器排序图层的名称。 |
sortingOrder | 排序图层中的渲染器顺序。 |
enabled | 启用的 Behaviour 可更新,禁用的 Behaviour 不可更新。 |
isActiveAndEnabled | 已调用启用的 Behaviour。 |
gameObject | 此组件附加到的游戏对象。始终将组件附加到游戏对象。 |
tag | 此游戏对象的标签。 |
transform | 附加到此 GameObject 的 Transform。 |
hideFlags | 该对象应该隐藏、随场景一起保存还是由用户修改? |
name | 对象的名称。 |
BroadcastMessage | 调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。 |
CompareTag | 此游戏对象是否使用 tag 进行了标记? |
GetComponent | 如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。 |
GetComponentInChildren | 使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。 |
GetComponentInParent | 返回 GameObject 或其任何父项中类型为 type 的组件。 |
GetComponents | 返回 GameObject 中类型为 type 的所有组件。 |
GetComponentsInChildren | 返回 GameObject 或其任何子项中类型为 type 的所有组件。 |
GetComponentsInParent | 返回 GameObject 或其任何父项中类型为 type 的所有组件。 |
SendMessage | 调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。 |
SendMessageUpwards | 调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。 |
GetInstanceID | 返回对象的实例 ID。 |
ToString | 返回 GameObject 的名称。 |
Destroy | 删除 GameObject、组件或资源。 |
DestroyImmediate | 立即销毁对象 /obj/。强烈建议您改用 Destroy。 |
DontDestroyOnLoad | 在加载新的 Scene 时,请勿销毁 Object。 |
FindObjectOfType | 返回第一个类型为 type 的已加载的激活对象。 |
FindObjectsOfType | 返回所有类型为 type 的已加载的激活对象的列表。 |
Instantiate | 克隆 original 对象并返回克隆对象。 |
bool | 该对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,判断它们是否引用同一个对象。 |