碰撞测试这个再游戏的开发中是很有必要的,当敌人的攻击的时候,发生碰撞这时候就会造成一定的伤害,因此我们需要根据受到的伤害对用户的生命值进行控制,因此碰撞的测试是 我们在游戏的开发过程中需要的一种比较重要的数据。
在Unity中的碰撞测试有两种,一种是碰撞,一种是触发!一种属于物理碰撞,一种属于非物理碰撞。个人理解为一种是真是的碰撞,一种只是一种靠近后所触发的碰撞!当然对于这些的使用也是见仁见智啦!你觉得怎么样会比较好就怎么用啦!
好啦!现在我们来介绍这两种吧!
1.Collision检测:在碰撞的过程中有三种状态分别是OnCollisionEnter;OnCollosionStay;OnCollisionExit;相信通过也能大概了解到他们的大体作用,分别是碰撞开始,碰撞持续,碰撞结束;
2,.Trigger检测:使用这个之前需要勾选IsTrigger属性并用到三种方法:OnTriggerEnter;OnTriggerStay;OnTriggerExit;和上面的类似。
ok,下面我们来分析下两种碰撞测试吧!
一,Collision检测:
void OnCollisionEnter(Collision mCollision) { Debug.Log("OnCollisionEnter"); } void OnCollisionStay(Collision mCollision) { Debug.Log("OnCollisionStay"); } void OnCollisionExit(Collision mCollision) { Debug.Log("OnCollisionExit"); } |
二,Trigger检测:
void OnTriggerEnter(Collision mCollision) { Debug.Log("OnTriggerEnter"); } void OnTriggerStay(Collision mCollision) { Debug.Log("OnTriggerStay"); } void OnTriggerExit(Collision mCollision) { Debug.Log("OnTriggerExit"); } |
ok,其实函数也就这样,不过更重要的是对函数内部的操作,比如说我们碰撞啦!这是后我们需要知道的碰撞的物体是什么东西,这时候我们就需要用到Collision这个对象啦!