Unity3D 游戏的碰撞

时间:2023-02-09 12:51:38

首先创建两个精灵,然后都绑定上碰撞方法(这个是在上一篇文章的基本上):

不过 要注意一点就是碰撞器需要挂一个重力组件,不然无效

所以添加了差不多就能够实现物体碰撞了:

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 ....

这样还是不行的,因为并没有将结束的关卡添加进来,所以还需要把关卡添加进来才行:

Unity3D 游戏的碰撞

这样就添加进来了,开始运行。