Version: 2023.1

Physics.SphereCastNonAlloc

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

参数

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

返回

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

描述

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

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


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

参数

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

返回

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

描述

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