- Collision 事件 (碰撞事件)
(1) . OnCollisionEnter 函数 : 碰撞体和其他碰撞体开始接触时调用(两个碰撞体至少一个有刚体) ;
(2) . OnCollisionStay 函数 : 碰撞体和其他碰撞体保持接触时调用(两个碰撞体至少一个有刚体) ;
(3) . OnCollisionExit 函数 : 碰撞体和其他碰撞体停止接触时调用(两个碰撞体至少一个有刚体) ;
运行脚本 :
见 "碰撞事件运行效果" 视频 .
当右边的cube 碰到左边的cube的一瞬间 , 左边cube变小了 0.5倍 (OnCollisionEnter函数被调用) ;
当右边cube一直接触左边cube时,左边的cube一直变红(OnCollisionStay函数被调用) ;
当右边cube停止接触左边cube时,左边的cube变黄(OnCollisionExit函数被调用);
注意到当右边的cube 往左边挤时 , 左边的cube会被向左推 , 这根现实生活中的情况一样 ; 但是游戏中有时候我们并不想两个物体互相推 , 比如子弹打中小怪的时候 , 我们并不想小怪和子弹互相弹开 , 这个时候就需要用到触发器了 . 下面为大家介绍触发事件!
2 .Trigger 事件(触发事件)
我们只需要勾选 Is Trigger 就可以把碰撞器变为触发器了 ;
触发器也有三个触发事件 :
(1) . OnTriggerEnter 函数 : 当其他碰撞体进入触发器时调用 ;
(2) . OnTriggerStay 函数 : 当其他碰撞体停留触发器时调用 ;
(3) . OnTriggerExit 函数 : 当其他碰撞体离开触发器时调用 ;
注意里面的方法改为了触发方法
运行脚本 :
见 "触发事件运行效果" 视频 .
当右边的cube碰到左边cube时 , 左边cube缩小了 0.5 倍 ;
当右边的cube一直接触左边cube时 , 左边cube一直变红 ;
当右边cube停止接触左边cube时 , 左边cube变黄 ;
大家可以注意到 , 此时右边的cube可以无阻碍的穿过左边的cube , 没有任何碰撞 . 这就是触发器了 , 可以拿这篇文章和上一篇碰撞事件比较着看 , 注意两者的区别 . 下一篇为大家介绍 Destroy