版本: Unity 6 (6000.0)
语言英语
  • C#

Collider.layerOverridePriority

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提出的每一个建议,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

public int layerOverridePriority;

描述

分配给此 Collider 的决策优先级,当关于 Collider 是否可以与另一个 Collider 接触存在冲突决策时使用。

层碰撞矩阵定义了哪些层可以接触其他层。此外,您还可以根据每个 Collider 或针对附加到特定 RigidbodyArticulationBody 的所有 Collider 包含和排除层。任何接触都涉及两个不同的 Collider 实例。不幸的是,这会导致一个 Collider 决定它应该接触另一个 Collider,但另一个 Collider 决定它不应该接触。有一些规则来决定如何处理这些情况。

两个 Collider(这里分别称为 A 和 B)之间做出决定的规则按以下顺序进行

  1. 如果 A 和 B 都做出相同的决定,则使用该决定。
  2. 如果只有 A 或 B 使用层包含或排除覆盖,则使用指定了包含或排除覆盖的 A 或 B 的决定。
  3. 如果 A 和 B 都使用层包含或排除覆盖,则使用具有较高 Collider.layerOverridePriority 的 A 或 B 的决定。
  4. 如果 A 和 B 具有相同的 Collider.layerOverridePriority,则决定将是不创建接触。

其他资源:Collider.includeLayersCollider.excludeLayersRigidbody.includeLayersRigidbody.excludeLayersArticulationBody.includeLayersArticulationBody.excludeLayers