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 | 指定此查询是否应该击中触发器。 |