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

2020-07-15 09:32 更新

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

  • 利用碰撞體(Collider)。

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

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

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

當(dāng)綁定了碰撞體的游戲?qū)ο筮M(jìn)入觸發(fā)器區(qū)域時(shí),會(huì)運(yùn)行觸發(fā)器對(duì)象上的 OnTriggerEnter 函數(shù),同時(shí)需要在檢視面板中的碰撞體組件中勾選 IsTrigger 復(fù)選框

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

  • MonoBehaviour.OnTriggerEnter(Collider collider),當(dāng)進(jìn)入觸發(fā)器時(shí)觸發(fā)。

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

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

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

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

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

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

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)