Physics.SphereCast 球体投射

static function SphereCast (origin : Vector3, radius : float, direction : Vector3, out hitInfo : RaycastHit, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : boolean

Parameters参数

Returns

boolean - 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;
		if (Physics.SphereCast(p1, charCtrl.height / 2, 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;
	// Cast a sphere wrapping character controller 10 meters forward, to see if it is about to hit anything
	//向前投射一个球体角色控制器10米,看它如何碰到东西
	if (Physics.SphereCast (p1, charCtrl.height / 2, transform.forward, hit, 10)) {
		distanceToObstacle = hit.distance;
	}
}

• static function SphereCast (ray : Ray, radius : float, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : boolean
• static function SphereCast (ray : Ray, radius : float, out hitInfo : RaycastHit, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : boolean

Parameters参数

Returns

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

Page last updated: 2013-5-3