1. 程式人生 > >Unity開發筆記(4): 碰撞相關API

Unity開發筆記(4): 碰撞相關API

Unity3D中的碰撞: 在unity中,有普通碰撞體Collider和觸發器(Trigger)兩種碰撞體,兩個普通碰撞體會發生碰撞併產生力學現象,觸發器則像是個無法觸碰而又真實存在的東西,也會觸發碰撞事件,但另一個物體會穿過它,碰撞發生的前提是兩碰撞體有一方攜帶剛體(Rigidbody)元件。 物體對碰撞體進行處理的三個函式:

void OnCollisionEnter(Collision collision){};//當碰撞體進入當前物體時觸發的回撥函式
void OnCollisionStay(Collision collision){};//當碰撞體停留當前物體內時觸發的回撥函式
void OnCollisionExit(Collision collision){};//當碰撞體離開當前物體時觸發的回撥函式
物

體對觸發器進行處理的三個函式:

void OnTriggerEnter(Collider other){}//當觸發器進入當前物體時觸發的回撥函式
void OnTriggerStay(Collider other){}//當觸發器停留在當前物體時觸發的回撥函式
void OnTriggerExit(Collider other){}//當觸發器離開當前物體時觸發的回撥函式

Unity2D中的碰撞: 概念和Unity3D大致相同 物體對2D碰撞體進行處理的三個函式:

void OnCollisionEnter2D(Collision2D collision){}//當2D碰撞體進入當前物體時觸發的回撥函式
void OnCollisionStay2D(Collision2D collision){}//當2D碰撞體停留當前物體內時觸發的回撥函式
void OnCollisionExit2D(Collision2D collision){}//當2D碰撞體離開當前物體時觸發的回撥函式
物

體對2D觸發器進行處理的三個函式:

void OnTriggerEnter2D(Collider2D other){}//當2D觸發器進入當前物體時觸發的回撥函式
void OnTriggerStay2D(Collider2D other){}//當2D觸發器停留在當前物體時觸發的回撥函式
void OnTriggerExit2D(Collider2D other){}//當2D觸發器離開當前物體時觸發的回撥函式

博主在2D遊戲開發的時候遇到幾次碰撞沒有發生,原因基本都是某一方的碰撞體或者剛體(RigidBody)沒有2D字尾。。。。。。。。。。所以不要在2D的專案裡出現3D的元件啊,找一天的BUG