一、碰撞事件
1).如何理解碰撞事件?
碰撞事件简单来说就一个物体与另外的一个物体一旦相互接触就产生了碰撞,
而此时会触发碰撞事件。当然产生碰撞事件的前提是两个相撞的物体都必须拥有Collider组件。
其实本质上来说uinty中物体的碰撞就是Collider组件的碰撞。
我们从图中可以看到里面有一个Is Trigger选项,我们看到黑箭头那里此时我们选择不勾选,具体为什么我下面讲到触发事件的时候会给大家详细解答。
2).碰撞事件监测的方法
1.OnCollisionEnter(Collision [参数名字])
这个方法代表当我们两个物体一旦接触,就会触发这个事件,但该方法只会调用一次。
2.OnCollisionStay(Collision [参数名字])
当个物体碰撞一直来进行着,就会触发这个事件,该方法会一直调用。直到两个物体没有碰撞后才会停止
3.OnCollisionExit(Collision [参数名字])
当两个物体碰撞结束后会调用该方法,该方法也只会调用一次
4.Collision [参数的名字]
Collision是一个类,我们可以理解它是为传递碰撞信息的。
[参数名字].gameObject.name物体表示与该物体碰撞时,碰撞物体的名字。
二、触发事件
1.触发器(is Trigger)
这是我们就需要在Collider组件面板中,找到is Trigger,把它勾选中,这是该物体就会变成触发器,但我们其他的物体碰撞到该物体就会直接穿透该物体。
2.如何理解触发事件?
可以把一个正在移动的刚体物体假设为物体1,把一个有触发器的物体假设为物体2。
当由物体1被刚体控制移动到物体2的触发器范围时,这时就是触发事件。
触发事件主要用于不用直接与物体接触,我们就能触发某一事件,类似我们实际生活中的自动门,当我们接近自动门并且还没碰到它,它就会自动开门,大家可以这么理解触发事件。
3.OnTriggerEnter(Collider [参数名字])
与碰撞事件类似,它是物体进入触发器范围时候调用,只会触发一次。
4.OnTriggerStay(Collider [参数名字])
也与碰撞事件类似,它是物体进入触发器范围内调用,只要物体一直在触发器范围,它就会持续的调用。
4.OnTriggerExit(Collider [参数名字])
它是当物体离开触发器时会调用,只会触发一次。
5.Collider [参数名字]
Collision是一个类,我们可以理解它是为传递触发信息的。
[参数名字].gameObject.name物体表示与进入触发器时,触发物体的名字。