碰撞器的条件
双方都要有碰撞器Collider
至少有一个要有Rigidbody
必须有相对的运动
void OnCollisionEnter (Collision other)//碰到了
{
print ("碰到我了" + other.gameObject.name);
}
void OnCollisionStay (Collision other)//一直挨着
{
print ("弄啥类,蹭我了" + other.gameObject.name);
}
void OnCollisionExit (Collision other)//分开了
{
print ("你是我的噩梦终于离开了我");
}
触发器的条件:
两个都要有碰撞器
至少一个带有钢体
至少有一个勾选Trigger
void OnTriggerEnter (Collider other)
{
if (other.gameObject.name != "Plane") {
print ("进入了");
}
}
//处于某个触发器之中的时候持续调用
void OnTriggerStay (Collider other)
{
if (other.gameObject.name != "Plane") {
print ("在里边");
}
}
//退出触发器的时候调用一次
void OnTriggerExit (Collider other)
{
if (other.gameObject.name != "Plane") {
print ("完事儿了");
}
}
爆炸:
必须要有钢体才可以爆炸
获得范围内所有的碰撞器
Collider[] Colliders = Physics.OverlapSphere (transform.position, 5f);
//给每一个钢体添加爆炸力
foreach (Collider Hit in Colliders) {
if (Hit) {//当碰撞器不为空时再进行下一步
Rigidbody rig = Hit.gameObject.GetComponent <Rigidbody> ();
//不一定所有带碰撞器的就一定有钢体
if (rig) {
rig.AddExplosionForce (5000f, transform.position, 50f);
}
}
}
爆炸只需一句代码,上边的为转载他人博客,出处不明,
AddExplosionForce (爆炸力, 爆炸点, 范围)