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

Collider2D.layerOverridePriority

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

public int layerOverridePriority;

描述

分配给此 Collider2D 的决策优先级,当发生关于自身与另一个 Collision2D 之间是否应该发生碰撞的冲突决策时使用。

层碰撞矩阵定义了哪些层可以与哪些层接触,哪些层不能与哪些层接触。额外的层包含和排除可以针对每个 Collider2D 或附加到特定 Rigidbody2D 的所有 Collider2D 进行设置。任何接触都涉及两个不同的 Collider2D 实例。不幸的是,这会导致一个 Collider2D 决定它应该与另一个 Collider2D 接触,而另一个 Collider2D 决定它不应该接触。但是,在确定并最终仲裁最终关于是否应该创建接触的决定时,有一些规则。

在以下顺序中进行关于两个 Collider2D(此处分别称为 A 和 B)之间发生接触的决策规则

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

其他资源:Collider2D.includeLayersCollider2D.excludeLayersRigidbody2D.includeLayersRigidbody2D.excludeLayers