Unity C# | Unity Event

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

前言

這篇文章將會講述 Unity Event 的介紹及基礎使用方法。

Unity Event | 你還記得 OnClick() 嗎?

  在使用 Button 的時候,是否還記得那個點擊按鈕,就能觸發掛載事件的 OnClick() 事件嗎?我們一樣能撰寫類似的系統,只需要簡單的借助 Unity內建的事件系統就可以了。

擴充性強

  在物件導向中,我們會希望每個物件彼此可以獨立,並且降低耦合性,使用這個程式組件,能讓我們建置好物件才決定要觸發哪個事件。

觸發器

  假設今天我們要製作一個觸發器,但我們還沒決定好要觸發哪一個事件,或是事件有太多,不希望用 Switch 一個個預先寫好,那會相當複雜,而且未來有新事件時,也會需要再寫一次。

  我們就能使用 Unity Event 來撰寫這一塊,當我們按下按鈕,觸發器會觸發一個空事件,這個空事件可以在外面掛載需要的其他事件。

運作原理

  它的運作原理來自於 Delegate 和 Event ,這兩個東西可以理解為訂閱跟直播主,因此直播主跟訂閱者彼此沒有關聯,不會因為訂閱者消失直播主就出現程式錯誤。

  我們要做的事情就是在 Unity Inspector 中用官方寫好的組件,去訂閱這一個 Unity Event ,那我們來看看怎麼製作。

製作流程

1. 在最上面輸入 「using UnityEngine.Events;」

2. 此時可以創建一個名為 UnityEvent 的類型,命名為AddEvent,權限設定為public。

3. 創建一個公用函式,命名為 MyEvent,裡面打上 「AddEvent.Invoke();」。

4. 我們可以在 Inspector 中拖曳其他物件的公開函式進來,當 MyEvent 被觸發的時候,我們新增的所有公開函式都會一起被觸發。

5. 完成,我們能用各種方式去呼叫這個 MyEvent,它會自行運作並通知所有訂閱它的使用者。

參考資料

《Unity API | UnityEvent

《UnityEvent使脚本像Button的onClick方法一样》

後記

  下周發表,我把我撰寫的其中一個重要的小知識寫進來了。

瓶裝雪

想了解我更多嗎?

留言
avatar-img
留言分享你的想法!
avatar-img
瓶裝雪的沙龍
108會員
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
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
這篇文章將會講述 Unity 自帶參數的功能,在撰寫時要怎麼進行封裝。
Thumbnail
這篇文章將會講述 Unity 自帶參數的功能,在撰寫時要怎麼進行封裝。
Thumbnail
這篇文章將會講述如何使用程式腳本讀取 Input System 的玩家輸入。
Thumbnail
這篇文章將會講述如何使用程式腳本讀取 Input System 的玩家輸入。
Thumbnail
UnityEvent 簡單介紹。
Thumbnail
UnityEvent 簡單介紹。
Thumbnail
在搞清楚事件委託前必須先了解什麼是事件傳遞機制(Event Propagation),也就是捕獲(capture)跟冒泡(bubble),聽起來好像很難但是我昨天看完彭彭的直播課程(17:00開始)後就懂了!我寫成文章幫助記憶,也希望能幫助到大家,然後希望我面試會被考到。
Thumbnail
在搞清楚事件委託前必須先了解什麼是事件傳遞機制(Event Propagation),也就是捕獲(capture)跟冒泡(bubble),聽起來好像很難但是我昨天看完彭彭的直播課程(17:00開始)後就懂了!我寫成文章幫助記憶,也希望能幫助到大家,然後希望我面試會被考到。
Thumbnail
這篇文章將會講述 Unity Event 的介紹及基礎使用方法。
Thumbnail
這篇文章將會講述 Unity Event 的介紹及基礎使用方法。
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
前言   這篇文章將會講述碰撞事件的撰寫,跟碰撞事件有關的函式共有六種,分別為 OnCollisionEnter/Stay/Exit 和 OnTriggerEnter / Stay /Exit ,本篇文章將會講述通用的邏輯。 Collider | 碰撞體   在之前我從組件(Component)和程
Thumbnail
前言   這篇文章將會講述碰撞事件的撰寫,跟碰撞事件有關的函式共有六種,分別為 OnCollisionEnter/Stay/Exit 和 OnTriggerEnter / Stay /Exit ,本篇文章將會講述通用的邏輯。 Collider | 碰撞體   在之前我從組件(Component)和程
Thumbnail
介紹 委派 透過委派可以實現把方法作為參數傳遞 從範例可以看出我們將DoNothing當成參數在傳遞 📷 事件 事件:是帶event關鍵字的委派的實體,可以限制變數被外部直接使用/直接賦予值(安全保障) 特點: 不能直接Invoke() 不能 賦予 null => = null 委派是一個類型
Thumbnail
介紹 委派 透過委派可以實現把方法作為參數傳遞 從範例可以看出我們將DoNothing當成參數在傳遞 📷 事件 事件:是帶event關鍵字的委派的實體,可以限制變數被外部直接使用/直接賦予值(安全保障) 特點: 不能直接Invoke() 不能 賦予 null => = null 委派是一個類型
Thumbnail
本篇文章將會講述UnityEditor的簡單使用方式,並且詳細介紹Unity客製化最核心的機制[MenuItem("")],就由範例與說明帶你快速搞懂Unity Editor到底在設計什麼。
Thumbnail
本篇文章將會講述UnityEditor的簡單使用方式,並且詳細介紹Unity客製化最核心的機制[MenuItem("")],就由範例與說明帶你快速搞懂Unity Editor到底在設計什麼。
Thumbnail
本篇文章是Unity Component系列中的第一篇,將會介紹Unity Component中UGUI的Button的各項目介紹,不包含應用。
Thumbnail
本篇文章是Unity Component系列中的第一篇,將會介紹Unity Component中UGUI的Button的各項目介紹,不包含應用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News