Unity C# | OnCollision & OnTrigger

更新於 發佈於 閱讀時間約 6 分鐘

前言

  這篇文章將會介紹 Unity 中關於物理碰撞與偵測事件,如何使用程式腳本撰寫相關的程式來控制遊戲物件,這是學習 Unity 必學知識,它們在 Unity 中具有不可撼動的核心地位。

合併閱讀:《Unity Component | Collider & isTrigger》

前提條件

  當兩個遊戲物件(GameObject)都有碰撞體組件(Collider Component),並且其中一方擁有剛體(Rigidbody),通常是事件的發起人,依據 is Trigger 有沒有勾選,會有 Enter/Stay/Exit 共三種差異。

OnCollision | 物理碰撞體積

  在 Unity 遊戲設計中,會需要讓物件有碰撞體積,並且確認玩家碰撞的情況與情形,有三種不同的情形,物件彼此碰撞的當下、物件保持碰撞的時候、物件離開碰撞後。

OnCollisionEnter

  當物件彼此碰撞的當下,可以使用此函數進行事件,並且我們可以獲取被碰撞體的資訊,通常會放在遊戲物件,並偵測玩家後對玩家進行操作。

private void OnTriggerExit(Collider other)
{
  if (other.tag == "Player")
  {
    BoxCollider coli = GetComponent<BoxCollider>();
    coli.enabled = true;
  }
}

OnCollisionStay

  當物件保持碰撞的時候,可以使用此函數進行事件,並且我們可以獲取被碰撞體的資訊,將會每一幀觸發一次函式。

private void OnCollisionStay(Collider other)
{
  Debug.Log("玩家扣1滴血);
  //這行程式會狂跳。
}

OnCollisionExit

  當物件離開碰撞的時候,可以使用此函數進行事件,並且我們可以獲取被碰撞體的資訊,將只會觸發一次。

private void OnCollisionExit(Collider other)
{
  Debug.Log("玩家離開");
}

OnTrigger | 偵測觸發事件

  在使用上跟碰撞體(Collision)相同,需要勾選 is Trigger ,在這種情況下碰撞體內的全部範圍都會變成偵測範圍,玩家可以自由穿越其中,有物件進入偵測範圍、物件滯留在偵測範圍、物件離開偵測範圍三種不同模式。

OnTriggerEnter

  當玩家進入偵測範圍時,可以用在類似感應門的觸發事件,每次觸發一次事件,離開再進入可以重複觸發,配合上程式撰寫能做出拌線、地雷等一次性事件機關。

private void OnTriggerEnter(Collider other)
{
  Debug.Log("開門");
}

OnTriggerStay

  當玩家留在偵測範圍時,可以每幀觸發一次函數,很適合用在持續扣血的酸液池或消耗耐久度的毒霧等事件。

private void OnTriggerStay(Collider other)
{
  if(other.tag =="Player")
  {
    Rigidbody rigi = other.GetComponent<Rigidbody>();
    Debug.Log("玩浸泡在死亡池中");
    rigi.drag = sticky;
    player = other.gameObject;
    InPool = true;
  }
}

OnTriggerExit

  當玩家離開觸發範圍,會觸發一次函式,如果離開再進入會重複觸發,可以配合程式設計做出一次性的效果,或重複累計次數的機關。

private void OnTriggerEnter(Collider other)
{
  Debug.Log("關門");
}

應用

Unity | Third person | Color Pad | Hue myself 5

raw-image


Unity Third person | Death Pool | Hue Myself 2

raw-image

後記

  隨著我的遊戲設計旅途,我在撰寫教學文章上也越來越有心得,相較於當初的第一篇文章,相信我進步了很多,雖然我還是會擔心文章被盜或創意被竊的情況發生,但我還是走在這條路上。


瓶裝雪

你對我有興趣了?那太好了,我還有很多的作品跟知識可以讓你看看,無論是我對了抒發情感和鍛鍊文筆的生活與戀愛的文章、還是關於我自己專案的日程紀錄、粒子特效的作品展示,都可以在下面找到我。

最新消息與時間軸:

噗浪 ( plurk.com )

程式與設計:

臉書 ( Facebook.com )

痞客邦 ( pixnet.net )

戀愛與生活:

波波黛莉 ( popdaily.com.tw )

痞客邦 ( pixnet.net )

粒子與特效:

Instagram ( instagram.com )

Youtube ( youtube.com )

PixivFanbox ( fanbox.cc )

遊戲製作:

叭啦叭啦 ( gamer.com )

Twitter ( twitter.com )

Youtube ( youtube.com )


留言
avatar-img
留言分享你的想法!
avatar-img
瓶裝雪的沙龍
109會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
瓶裝雪的沙龍的其他內容
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
這篇文章將會講述設計與製作一款第三人稱控制器所需要的工具、要素之概述。
Thumbnail
這篇文章將會講述設計與製作一款第三人稱控制器所需要的工具、要素之概述。
Thumbnail
在數創整合與作品集結束以後加速完工的專題作品,這篇文章將會講述遊戲類型概述與技術層面的成長。
Thumbnail
在數創整合與作品集結束以後加速完工的專題作品,這篇文章將會講述遊戲類型概述與技術層面的成長。
Thumbnail
這篇文章將會介紹 UGUI ,以及如何使用程式碼控制 UGUI 的座標。
Thumbnail
這篇文章將會介紹 UGUI ,以及如何使用程式碼控制 UGUI 的座標。
Thumbnail
這篇文章會介紹圖層及相關應用,並藉由範例流程直白理解圖層的功用。
Thumbnail
這篇文章會介紹圖層及相關應用,並藉由範例流程直白理解圖層的功用。
Thumbnail
這篇文章將會介紹 Unity 中關於物理碰撞與偵測事件,如何使用程式腳本撰寫相關的程式來控制遊戲物件,這是學習 Unity 必學知識,它們在 Unity 中具有不可撼動的核心地位。
Thumbnail
這篇文章將會介紹 Unity 中關於物理碰撞與偵測事件,如何使用程式腳本撰寫相關的程式來控制遊戲物件,這是學習 Unity 必學知識,它們在 Unity 中具有不可撼動的核心地位。
Thumbnail
最後我們將講解事件第三頁的指令,這個部分的指令有些比較少用到,但還是蠻實用的!
Thumbnail
最後我們將講解事件第三頁的指令,這個部分的指令有些比較少用到,但還是蠻實用的!
Thumbnail
本次將會講解事件第二頁的相關功能,包含人物、畫面、音樂、影片等等。
Thumbnail
本次將會講解事件第二頁的相關功能,包含人物、畫面、音樂、影片等等。
Thumbnail
本篇將會解說在恐怖或是解謎遊戲常會出現的,使用道具時顯示圖片來調查。
Thumbnail
本篇將會解說在恐怖或是解謎遊戲常會出現的,使用道具時顯示圖片來調查。
Thumbnail
在這裡蒐集大部分作者在製作上會有的事件使用問題來一一回答。想要尋找相關回答的請善用 Ctrl + F 來尋找關鍵字喔!
Thumbnail
在這裡蒐集大部分作者在製作上會有的事件使用問題來一一回答。想要尋找相關回答的請善用 Ctrl + F 來尋找關鍵字喔!
Thumbnail
  本篇將會講解移動路線的時候,也會提到關於劇情位置的運用。
Thumbnail
  本篇將會講解移動路線的時候,也會提到關於劇情位置的運用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News