Unity 中的碰撞和觸發事件


一、碰撞事件

1). 什么是碰撞事件

  碰撞事件簡單來說就是一個物體與另一個物體一旦相互接觸就產生了碰撞,而這時候就會觸發碰撞事件

  當然,產生碰撞事件的兩個物體必須滿足相應的條件:

    • 兩個游戲對象都必須有 Collider 碰撞器組件

    • 至少有一個游戲對象包含剛體組件

    • 兩個游戲對象有相對運動

  

  其實,Unity 中物體的碰撞也可以說是 Collider 組件的碰撞。

2). 碰撞事件的檢測方法

 1. OnCollisionEnter(Collision [參數名稱])

  這個方法表示當兩個碰撞物體一旦接觸,就會觸發這個事件,但這個方法只會調用一次。

  

 2. OnCollisionStay(Collision [參數名稱])

  當物體碰撞一直進行時,就會觸發這個事件,這個方法也會一直調用,直到兩個物體沒有碰撞后才會停止。

  

 3. OnCollisionExit(Collision [參數名稱])

  當兩個物體碰撞結束后才會調用這個方法,這個方法也只會調用一次。

  

 4. Collision [參數名稱]

  Collision 是一個類,可以將它理解為是傳遞碰撞信息的。

  例如:[參數名稱].gameObject.name 就表示與該物體發生碰撞時,碰撞物體的名字。

  

二、觸發事件

1). 觸發器(Is Trigger)

  

  在 Collision 組件面板中找到 Is Trigger 並選擇勾選,這時該物體就會變成觸發器,其他物體與該物體發生碰撞時就會直接穿透該物體。

2). 如何理解觸發事件

  可以把一個正在移動的剛體物體假設為 A,把一個帶有觸發器的物體設為 B。

  當 A 被剛體控制移動到 B 的觸發范圍時,這時就是觸發事件。

  觸發事件主要用於不用直接與物體接觸,就能觸發某一事件的時候,

  例如生活中的自動門,當我們接近自動門並且還沒碰到它,它就會自動開門。

3). 觸發事件的方法

 1. OnTriggerEnter(Collider [參數名稱])

  與碰撞事件類似,在物體進行觸發范圍的時候調用,只會觸發一次。

  

 2. OnTriggerStay(Collider [參數名稱])

  也與碰撞事件類似,在物體進入觸發器范圍內調用,只要物體一直在觸發范圍,它就會持續的調用。

  

 3. OnTriggerExit(Collider [參數名稱])

  當物體離開觸發器范圍的時候會調用,只會觸發一次。

  

 4. Collider [參數名稱]

  Collider 是一個類,也可以將它理解為傳遞觸發信息的。

  例如:[參數名稱].gameObject.name 表示物體進入觸發器時,觸發物體的名字。

  

 

 

 

 

 

*** |  以上內容僅為學習參考、學習筆記使用  | ***


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM