Unity3D 游戏的碰撞
首先创建两个精灵,然后都绑定上碰撞方法(这个是在上一篇文章的基本上):
不过 要注意一点就是碰撞器需要挂一个重力组件,不然无效
所以添加了差不多就能够实现物体碰撞了:
接下来技术写代码,让碰撞的时候进行触发:
这样就能在碰撞的时候,触发碰撞事件
//检测碰撞会执行此方法 void OnCollisionEnter2D(Collision2D coll) {
//这里Collision2D得到的是被碰撞的那个对象 if(coll.collider.gameObject.name == "bg_1") { Application.LoadLevel("game"); } //if (coll.gameObject.tag == "Enemy") // coll.gameObject.SendMessage("ApplyDamage", 10); }
如果做的是3D
那么可能就是
void OnCollisionEnter(Collision collision) { foreach (ContactPoint contact in collision.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } if (collision.relativeVelocity.magnitude > 2) audio.Play(); }
会发现这样会报错:
Level 'game(-1)' could't be loaded because it has ....
这样还是不行的,因为并没有将结束的关卡添加进来,所以还需要把关卡添加进来才行:
这样就添加进来了,开始运行。