Unity 碰撞

一:產生碰撞的必要條件
要產生碰撞的兩個遊戲對象都需要添加碰撞器組件Collider(不能勾選IsTrigger,勾選此屬性表示物體是一個觸發器,已經不能叫做碰撞器了)。其中一個對象必須添加剛體組件Rigidbody。
具備這兩個條件就可以發生碰撞效果,對兩個物體添加力的效果可以是碰撞產生,直接修改物體的position也可是使碰撞現象產生。但是這不是絕對的。如果物體的速度太快,物體會互相穿過。將不會發生碰撞現象。

二:碰撞器與觸發器
碰撞器與觸發器是同一個組件 Collider。如果組件的屬性IsTrigger等於True那麼它叫觸發器,如果等於False那麼它叫碰撞器。

三:MonoBehaviour中碰撞相關的函數
OnCollisionEnter(Collision collision) //當進入碰撞器時
OnCollisionExit(Collision collision) //當退出碰撞器時
OnCollisionStay(Collision collision) //當停留在碰撞器時
這三個函數的觸發的條件是發生碰撞,第一條說了發生碰撞的條件。
參數collision 中包含了一些碰撞的信息。

OnTriggerEnter(Collider other) //當進入觸發器時
OnTriggerExit(Collider other) //當退出觸發器時
OnTriggerStay(Collider other) //當停留在觸發器時
參數 other 中是對方的信息Collider。
兩個物體需要添加Collider組件,並且其中一個必須是觸發器,另一個可以是觸發器也可以是碰撞器。兩個物體都會觸發這三個函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章