Unity 3D 觸發(fā)器(Trigger)

2020-07-15 09:32 更新

在 Unity 3D 中,檢測碰撞發(fā)生的方式有兩種:

  • 利用碰撞體(Collider)。

  • 利用觸發(fā)器(Trigger)。

在很多游戲引擎或工具中都有觸發(fā)器,它被用來觸發(fā)事件。

例如,在游戲中的劇情里,玩家通過某個任務道具召喚了任務相關的 NPC 或者可擊殺的怪物,就可以用觸發(fā)器來實現(xiàn)。

當綁定了碰撞體的游戲對象進入觸發(fā)器區(qū)域時,會運行觸發(fā)器對象上的 OnTriggerEnter 函數(shù),同時需要在檢視面板中的碰撞體組件中勾選 IsTrigger 復選框。

觸發(fā)信息檢測使用以下 3 個函數(shù):

  • MonoBehaviour.OnTriggerEnter(Collider collider),當進入觸發(fā)器時觸發(fā)。

  • MonoBehaviour.OnTriggerExit(Collider collider),當退出觸發(fā)器時觸發(fā)。

  • MonoBehaviour.OnTriggerStay(Collider collider),當逗留在觸發(fā)器中時觸發(fā)。

Unity 3D 中的碰撞體和觸發(fā)器的區(qū)別在于:

  • 碰撞體是觸發(fā)器的載體。

  • 觸發(fā)器只是碰撞體的一個屬性。

如果既想要檢測到物體的接觸,又不想讓碰撞檢測影響物體移動,或者要檢測一個物體是否經(jīng)過空間中的某個區(qū)域,這時就可以用到觸發(fā)器。

例如,碰撞體適合模擬汽車被撞飛、皮球掉在地上又彈起的效果,而觸發(fā)器適合模擬人站在靠近門的位置時門自動打開的效果。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號