版本: Unity 6 (6000.0)
语言英语
  • C#

Physics.SphereCastAll

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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,但此函数将返回球体扫描相交的所有命中。