origin | 扫描开始处的球体中心。 |
radius | 该球体的半径。 |
direction | 扫描球体的方向。 |
hitInfo | 如果返回 true,则 hitInfo 将包含有关碰撞体的撞击位置的更多信息(另请参阅:RaycastHit)。 |
maxDistance | 投射的最大长度。 |
layerMask | 层遮罩,用于在投射胶囊体时有选择地忽略碰撞体。 |
queryTriggerInteraction | 指定该查询是否应该命中触发器。 |
bool 当球体扫描与任何碰撞体交叠时为 true,否则为 false。
沿射线投射球体并返回有关命中对象的详细信息。
当射线投射未提供足够的精度时,这很有用。例如,您可能只想知道某个具有特定大小的对象,
比如某个角色,能否在沿途不与任何对象发生碰撞的情况下到达某个地方。
可以将球体想象成一种“很厚”的射线投射。在这种情况下,
射线由起始矢量和方向指定。
注意:对于球体与碰撞体重叠的情况,SphereCast 不会检测到碰撞体。传递零作为半径会导致未定义的输出,其行为并不总是与 Physics.Raycast 相同。
另请参阅:Physics.SphereCastAll、Physics.CapsuleCast、Physics.Raycast、Rigidbody.SweepTest。
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { CharacterController charCtrl;
void Start() { charCtrl = GetComponent<CharacterController>(); }
void Update() { RaycastHit hit;
Vector3 p1 = transform.position + charCtrl.center; float distanceToObstacle = 0;
// Cast a sphere wrapping character controller 10 meters forward // to see if it is about to hit anything. if (Physics.SphereCast(p1, charCtrl.height / 2, transform.forward, out hit, 10)) { distanceToObstacle = hit.distance; } } }
ray | 投射球体扫描的射线的起点和方向。 |
radius | 该球体的半径。 |
maxDistance | 投射的最大长度。 |
layerMask | 层遮罩,用于在投射胶囊体时有选择地忽略碰撞体。 |
queryTriggerInteraction | 指定该查询是否应该命中触发器。 |
bool 当球体扫描与任何碰撞体交叠时为 true,否则为 false。
沿射线投射球体并返回有关命中对象的详细信息。
当射线投射未提供足够的精度时,这很有用。
例如,您可能只想知道某个具有特定大小的对象,比如某个角色,能否在沿途不与任何对象发生碰撞的情况下到达某个地方。
可以将球体想象成一种“很厚”的射线投射。
另请参阅:Physics.SphereCastAll、Physics.CapsuleCast、Physics.Raycast、Rigidbody.SweepTest。
ray | 投射球体扫描的射线的起点和方向。 |
radius | 该球体的半径。 |
hitInfo | 如果返回 true,则 hitInfo 将包含有关碰撞体的撞击位置的更多信息(另请参阅:RaycastHit)。 |
maxDistance | 投射的最大长度。 |
layerMask | 层遮罩,用于在投射胶囊体时有选择地忽略碰撞体。 |
queryTriggerInteraction | 指定该查询是否应该命中触发器。 |