[Unity] 事件訂閱與問題(下)- C# 介面
本篇繼續上一篇的內容來介紹第三種事件訂閱的方式:C# 介面。並在最後比較這三種訂閱方式。
本篇繼續上一篇的內容來介紹第三種事件訂閱的方式:C# 介面。並在最後比較這三種訂閱方式。
UnityEvent 與 C# event
在遊戲開發中,一個物件經常需要訂閱另一個物件的事件,以在事件發生時,執行對應的動作,像是玩家輸入、觸發機關、關卡管理等。而在 Unity 中,常見的方式是使用 UnityEvent 與 C# event 來讓物件提供事件介面,讓其它物件訂閱,但這兩者各自問題,反而讓程式容易出錯。本篇文章整理 UnityEvent...
當不同元件有相似的資料時,應該把相同的部份整理出來成為一個獨立的資料定義,並在用到的地方使用這個資料定義。如果元件之間各自定義的話,當要新增或修改資料時,所有用到的地方都得要一併更新,既秏時又費力,且容易出錯,會是一場災難。
Unity 2021 LTS 也出來好一陣子了,在 2021.2 版後就開始導入 C# 9.0。使用了半年後,發覺 C# 9.0 當中新增的語法可以讓程式碼更加簡潔易讀,整理成本篇來介紹個人常用的語法。
在專案開發上遇到這樣的問題:每個繼承類別要提供類似的 static 函式,功能差不多,但只有要取用的值不一樣。就在想能不能把 static 函式拉到基礎類別上,但又可以依照繼承類別給與不同的 static 成員值。
最近負責的 Unity 專案中,有很多 UI 有返回的按鈕,而這些按鈕也要可以透過程式觸發。如果為每個 UI 撰寫觸發的函式,一但觸發的邏輯改變,修改會是個大工程。如果為了這個小功能撰寫基礎類別,又顯得大才小用,而且 C# 的類別只能同時繼承一個類別,擴充性也不高。但 C# 類別可以繼承多個 interface,...
本篇用圖表來介紹 C# 類別成員的存取關係,有 private、protected、public,跟跨組件的成員存取,有 internal、protected internal、private protected。以及比較一般繼承與多型繼承中,會取得什麼版本的方法。
之前在撰寫 Unity 套件的時候,因為不知道使用者會用什麼類別來傳資料,所以都轉成 object 型別來傳遞,後來發現這會有效能上的問題。本篇文章就來探討這個問題以及解法。