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

Parameters

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

Returns

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

Description

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

Casts a sphere against all colliders in the Scene and returns detailed information on each collider which was hit. This is useful when a Raycast does not give enough precision, because you want to find out if an object of a specific size, such as a character, will be able to move somewhere without colliding with anything on the way.

注意:对于在扫描开始时与球体重叠的碰撞体,将 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);

Parameters

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

Description

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