Physics.SphereCastNonAlloc

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

Parameters

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

Returns

int 存储到 results 缓冲区的命中对象数量。

Description

沿该方向投射球体,并将结果存储到缓冲区中。

此为 Physics.SphereCastAll 的变体,但它不分配数组来存储查询结果,而是将结果存储到用户提供的数组中。它只计算适合缓冲区的匹配数,并且不按特定顺序存储它们。它不保证仅存储最接近的命中对象,也不产生任何垃圾。


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

Parameters

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

Returns

int 存储到 results 缓冲区的命中对象数量。

Description

沿该方向投射球体,并将结果存储到缓冲区中。