Rigidbody.OnCollisionEnter 碰撞速度检测

//当这个collider/rigidbody已经开始接触另一个rigidbody/collider时,OnCollisionEnter被调用。

//相对于OnTriggerEnter,OnCollisionEnter传递Collision类而不是Collider。Collision类包含接触点,碰撞速度等细节。如果在函数中不使用collisionInfo,省略collisionInfo参数以避免不必要的计算。请注意如果一个碰撞器附加了一个非动力刚体,也只发送碰撞事件。

function OnCollisionEnter(collision : Collision) {
	// Debug-draw all contact points and normals
	//调试绘制所有的接触点和法线
	for (var contact : ContactPoint in collision.contacts) {
		Debug.DrawRay(contact.point, contact.normal, Color.white);
	}

	// Play a sound if the coliding objects had a big impact.
	//如果碰撞物体有一个较大的冲撞,播放一个声音
	if (collision.relativeVelocity.magnitude > 2)
		audio.Play();
}



// A grenade 
// - instantiates a explosion prefab when hitting a surface
// - then destroys itself
//一枚手榴弹,在击中一个表面时初始化一个爆炸预设,然后销毁
var explosionPrefab : Transform;
function OnCollisionEnter(collision : Collision) {
	// Rotate the object so that the y-axis faces along the normal of the surface
	//旋转这个物体使y轴面向沿着表面法线的方向
	var contact = collision.contacts[0];
	var rot = Quaternion.FromToRotation(Vector3.up, contact.normal);
	var pos = contact.point;
	Instantiate(explosionPrefab, pos, rot);
	// Destroy the projectile
	//销毁这个物体
	Destroy (gameObject);
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值