Version: 2023.2

ContactFilter2D

struct in UnityEngine

切换到手册

描述

A set of parameters for filtering contact results. Define the angle by referring to their position in world space, where 0 degrees is parallel to the positive x-axis, 90 degrees is parallel to the positive y-axis, 180 degrees is parallel to the negative x-axis, and 270 degrees is parallel to the negative y-axis.

使用接触筛选器可准确控制返回的接触结果。这样无需在稍后筛选结果,因此更加快速和方便。

如果要使用的函数需要 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检查 normal 的角度是否在要筛选的法线角度范围内。
IsFilteringTrigger检查该 collider 是否是触发器,以及是否应按照要筛选的 useTriggers 进行筛选。
NoFilter将接触筛选器设置为不筛选任何 ContactPoint2D。
SetDepth设置 minDepth 和 maxDepth 筛选器属性,然后通过将 useDepth 设置为 true,打开深度筛选。
SetLayerMask使用提供的 layerMask 参数设置 layerMask 筛选器属性,此外通过将 useLayerMask 设置为 true,启用层遮罩筛选。
SetNormalAngle设置 minNormalAngle 和 maxNormalAngle 筛选器属性,然后通过将 useNormalAngle 设置为 true,打开法线角度筛选。