Version: 2022.3

Physics.SphereCastAll

切换到手册
public static RaycastHit[] SphereCastAll (Vector3 origin, float radius, Vector3 direction, float maxDistance= Mathf.Infinity, int layerMask= DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction= QueryTriggerInteraction.UseGlobal);

参数

origin 扫描开始处的球体中心。
radius 该球体的半径。
direction 扫描球体的方向。
maxDistance 扫描的最大长度。
layerMask 层遮罩,用于在投射球体时有选择地忽略碰撞体。
queryTriggerInteraction 指定该查询是否应该命中触发器。

返回

RaycastHit[] 扫描中命中的所有碰撞体的数组。

描述

Physics.SphereCast 类似,但该函数将返回球体扫描相交的所有命中对象。

向场景中的所有碰撞体投射球体,并返回有关命中的每个碰撞体的详细信息。 当射线投射未提供足够的精度时,这很有用。例如,您可能只想知道某个具有特定大小的对象, 比如某个角色,能否在沿途不与任何对象发生碰撞的情况下到达某个地方。

**注意:**对于在扫描开始时与球体重叠的碰撞体,将 RaycastHit.normal 设置为与扫描方向相反,RaycastHit.distance 设置为零,并在 RaycastHit.point 中返回零向量。您应该检查您的特定查询是否遇到这种情况,并执行其他查询来优化结果。传递零作为半径会导致未定义的输出,其行为并不总是与 Physics.Raycast 相同。

另请参阅:Physics.SphereCastPhysics.CapsuleCastPhysics.RaycastRigidbody.SweepTest


public static RaycastHit[] SphereCastAll (Ray ray, float radius, float maxDistance= Mathf.Infinity, int layerMask= DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction= QueryTriggerInteraction.UseGlobal);

参数

ray 投射球体扫描的射线的起点和方向。
radius 该球体的半径。
maxDistance 扫描的最大长度。
layerMask 层遮罩,用于在投射球体时有选择地忽略碰撞体。
queryTriggerInteraction 指定该查询是否应该命中触发器。

描述

Physics.SphereCast 类似,但该函数将返回球体扫描相交的所有命中对象。