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

ContactFilter2D

struct in UnityEngine

/

在以下内容中实现:UnityEngine.Physics2DModule

建议更改

成功!

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

关闭

提交失败

由于某种原因,您的建议更改无法提交。请在几分钟后 </a>重试。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

用于过滤接触结果的一套参数。通过引用其在世界空间中的位置确定角度,其中 0 度与正 x 轴平行,90 度与正 y 轴平行,180 度与负 x 轴平行,270 度与负 y 轴平行。

使用接触过滤器精确定位要返回哪些接触结果。这消除了后期过滤结果的需要,既快速又方便。

如果您正在使用需要 ContactFilter2D 的函数,但您不想执行任何过滤,则使用 ContactFilter2D.NoFilter

有关在对 ContactFilter2D 施放时使用它的详细信息,请参见:Physics2D.CircleCastPhysics2D.BoxCastPhysics2D.CapsuleCastPhysics2D.LinecastPhysics2D.RaycastCollider2D.RaycastCollider2D.CastRigidbody2D.Cast

有关在重叠区域中使用 ContactFilter2D 的详细信息,请参见:Physics2D.OverlapPointPhysics2D.OverlapCirclePhysics2D.OverlapBoxPhysics2D.OverlapAreaPhysics2D.OverlapCapsulePhysics2D.OverlapCollider、Rigidbody2D.OverlapCollider 和 Collider2D.OverlapCollider。

有关在接触中使用 ContactFilter2D 的详细信息,请参见:Physics2D.GetContactsCollider2D.GetContactsRigidbody2D.GetContactsPhysics2D.IsTouchingRigidbody2D.IsTouchingCollider2D.IsTouching

属性

isFiltering在接触过滤器的当前状态下,确定它是否会过滤任何内容。
layerMask设置接触筛选,仅筛选包含由图层遮罩定义的图层上 Collider2D 的结果。
maxDepth设置接触筛选,仅筛选 z 坐标(深度)小于此值的 Collider2D 的结果。
maxNormalAngle设置接触筛选,仅筛选碰撞法向角小于此角度的接触。
minDepth设置接触筛选,仅筛选 z 坐标(深度)大于此值的 Collider2D 的结果。
minNormalAngle设置接触筛选,仅筛选碰撞法向角大于此角度的接触。
useDepth使用 minDepth 和 maxDepth 设置接触筛选,按深度筛选结果。
useLayerMask设置接触筛选,按图层遮罩筛选结果。
useNormalAngle使用 minNormalAngle 和 maxNormalAngle 设置接触筛选,按碰撞法向角筛选结果。
useOutsideDepth设置接触筛选,在 minDepth 和 maxDepth 范围内或该范围外筛选结果。
useOutsideNormalAngle设置接触筛选,在 minNormalAngle 和 maxNormalAngle 范围内或该范围外筛选结果。
useTriggers按涉及的触发器碰撞器设置筛选接触结果。

公共方法

ClearDepth通过将 useDepth 设为 false 关闭深度筛选。关联的 minDepth 和 maxDepth 值不更改。
ClearLayerMask通过将 useLayerMask 设为 false 关闭图层遮罩筛选。关联的 layerMask 值不更改。
ClearNormalAngle通过将 useNormalAngle 设为 false 关闭法向角筛选。关联的 minNormalAngle 和 maxNormalAngle 值不更改。
IsFilteringDepth检查 obj 的 Transform 是否在要筛选的深度范围内。
IsFilteringLayerMask检查 obj 的 GameObject.layer 是否包含在要筛选的 layerMask 中。
IsFilteringNormalAngle检查法线角度是否在要筛选的法向角范围内。
IsFilteringTrigger检查碰撞器是否是触发器,并且是否应由 useTriggers 筛选。
NoFilter设置接触筛选,不筛选任何 ContactPoint2D。
SetDepth设置 minDepth 和 maxDepth 筛选属性,并将 useDepth 设为 true 以开启深度筛选。
SetLayerMask使用提供的 layerMask 参数设置 layerMask 筛选属性,并将 useLayerMask 设为 true 启用图层遮罩筛选。
SetNormalAngle设置 minNormalAngle 和 maxNormalAngle 筛选属性,并将 useNormalAngle 设为 true 以开启法向角筛选。