- bounceThreshold
- CapsuleCastAll
- CapsuleCast
- CheckCapsule
- CheckSphere
- GetIgnoreLayerCollision
- gravity
- IgnoreCollision
- IgnoreLayerCollision
- Linecast
- maxAngularVelocity
- minPenetrationForPenalty
- OverlapSphere
- RaycastAll
- Raycast
- sleepAngularVelocity
- sleepVelocity
- solverIterationCount
- SphereCastAll
- SphereCast
Physics.SphereCast 球体投射
static function SphereCast (origin : Vector3, radius : float, direction : Vector3, out hitInfo : RaycastHit, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : bool
Parameters参数
- originThe center of the sphere at the start of the sweep.
在扫描起点的球体中心点。 - radiusThe radius of the sphere.
球体的半径。 - directionThe direction into which to sweep the sphere.
球体扫描的方向 - hitInfoIf true is returned, hitInfo will contain more information about where the collider was hit (See Also: RaycastHit).
如果返回true,hitInfo将包含碰到器碰撞的更多信息。 - distanceThe length of the sweep
扫描的长度 - layerMaskA Layer mask that is used to selectively ignore colliders when casting a capsule.
根据Layer mask层的不同来忽略碰撞体。
bool - True when the capsule sweep intersects any collider, otherwise false.
当胶囊物体投射时与碰撞体相交时,返回真。
Description描述
Casts a sphere against all colliders in the scene and returns detailed information on what was hit.
投射球型物体来判断是否与场景中物体交互,返回 Raycasthit 信息。
This is useful when a Raycast does not give enough precision, because you want to find out if an object of a specific size, such as a character, will be able to move somewhere without colliding with anything on the way. Think of the sphere cast like a thick raycast.
这可以用在光线投射无法满足要求时的情况下。例如要判断角色(有空间大小尺寸)是否和一个物体发生碰撞。
参见: Physics.SphereCastAll, Physics.CapsuleCast, Physics.Raycast, Rigidbody.SweepTest
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Update() {
RaycastHit hit;
CharacterController charCtrl = GetComponent<CharacterController>();
Vector3 p1 = transform.position + charCtrl.center + Vector3.up * -charCtrl.height * 0.5F;
Vector3 p2 = p1 + Vector3.up * charCtrl.height;
if (Physics.CapsuleCast(p1, p2, charCtrl.radius, transform.forward, out hit, 10))
distanceToObstacle = hit.distance;
}
}
function Update () {
var hit : RaycastHit;
var charCtrl : CharacterController = GetComponent(CharacterController);
var p1 : Vector3 = transform.position + charCtrl.center +
Vector3.up * (-charCtrl.height*0.5);
var p2 : Vector3 = p1 + Vector3.up * charCtrl.height;
// Cast character controller shape 10 meters forward, to see if it is about to hit anything
//投射角色控制器形状向前10米,看它如果要撞上任何东西
if (Physics.CapsuleCast (p1, p2, charCtrl.radius, transform.forward, hit, 10)) {
distanceToObstacle = hit.distance;
}
}
• static function SphereCast (ray : Ray, radius : float, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : bool
• static function SphereCast (ray : Ray, radius : float, out hitInfo : RaycastHit, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : bool
Parameters参数
- originThe center of the sphere at the start of the sweep.
在扫描起点的球体中心点。 - radiusThe radius of the sphere.
球体的半径。 - directionThe direction into which to sweep the sphere.
球体扫描的方向 - hitInfoIf true is returned, hitInfo will contain more information about where the collider was hit (See Also: RaycastHit).
如果返回true,hitInfo将包含碰到器碰撞的更多信息。 - distanceThe length of the sweep
扫描的长度 - layerMaskA Layer mask that is used to selectively ignore colliders when casting a capsule.
根据Layer mask层的不同来忽略碰撞体。
bool - True when the capsule sweep intersects any collider, otherwise false.
当胶囊物体投射时与碰撞体相交时,返回真。
Description描述
Casts a sphere against all colliders in the scene and returns detailed information on what was hit.
投射球型物体来判断是否与场景中物体交互,返回 Raycasthit 信息。
This is useful when a Raycast does not give enough precision, because you want to find out if an object of a specific size, such as a character, will be able to move somewhere without colliding with anything on the way. Think of the sphere cast like a thick raycast.
这可以用在光线投射无法满足要求时的情况下。例如要判断角色(有空间大小尺寸)是否和一个物体发生碰撞。
参见: Physics.SphereCastAll, Physics.CapsuleCast, Physics.Raycast, Rigidbody.SweepTest