阅读背景:

Unity之一天一个技术点(七)---到包围盒的最近点

来源:互联网 

Rigidbody.ClosestPointOnBounds 到包抄盒的最近点

public class example : MonoBehaviour {	function Start () {
 var explosionPosition = transform.position;//本脚本依靠在爆炸火焰prefabs上
 var colliders : Collider[] = Physics.OverlapSphere (explosionPosition, explosionRadius);//获得以爆炸点为中心,必定半径内的球体内的GameObect
 //遍历规模内的对象
 for (var hit in colliders) {
 if (!hit)
 continue;
 //如果这个GameObject是刚体
 if (hit.rigidbody) {
 hit.rigidbody.AddExplosionForce(explosionPower, explosionPosition, explosionRadius, 3.0);//给这个刚体一个外力
 var closestPoint = hit.rigidbody.ClosestPointOnBounds(explosionPosition);//取出邻近的这个物体最接近爆炸点的点,到爆炸点的距离
 var distance = Vector3.Distance(closestPoint, explosionPosition);//盘算出距离
  var hitPoints = 1.0 - Mathf.Clamp01(distance / explosionRadius);// Mathf.Clamp01表现把数值强迫在0..1规模以内,如果数值超过这个规模,则取上限或下线
 hitPoints *= explosionDamage;
 hit.rigidbody.SendMessageUpwards("ApplyDamage", hitPoints, SendMessageOptions.DontRequireReceiver);
 }
 }
}public clas




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: