Unity

7 篇文章 所有標籤

[Unity] 事件訂閱與問題(上)- UnityEvent 與 C# event

在遊戲開發中,一個物件經常需要訂閱另一個物件的事件,以在事件發生時,執行對應的動作,像是玩家輸入、觸發機關、關卡管理等。而在 Unity 中,常見的方式是使用 UnityEvent 與 C# event 來讓物件提供事件介面,讓其它物件訂閱,但這兩者各自問題,反而讓程式容易出錯。本篇文章整理 UnityEvent...

[Unity] Unity 2021 LTS - C# 9.0 的新語法

Unity 2021 LTS 也出來好一陣子了,在 2021.2 版後就開始導入 C# 9.0。使用了半年後,發覺 C# 9.0 當中新增的語法可以讓程式碼更加簡潔易讀,整理成本篇來介紹個人常用的語法。

[C#] 利用 Attribute 為繼承類別給與不同的 Static 成員值

在專案開發上遇到這樣的問題:每個繼承類別要提供類似的 static 函式,功能差不多,但只有要取用的值不一樣。就在想能不能把 static 函式拉到基礎類別上,但又可以依照繼承類別給與不同的 static 成員值。

[C#] 用 interface 模擬多類別繼承

最近負責的 Unity 專案中,有很多 UI 有返回的按鈕,而這些按鈕也要可以透過程式觸發。如果為每個 UI 撰寫觸發的函式,一但觸發的邏輯改變,修改會是個大工程。如果為了這個小功能撰寫基礎類別,又顯得大才小用,而且 C# 的類別只能同時繼承一個類別,擴充性也不高。但 C# 類別可以繼承多個 interface,...

[Unity] 設定 Android 不要備份 PlayerPrefs

用 Unity 開發 Android 上的遊戲時,如果有用到 PlayerPrefs 儲存使用者的資料,可能會發現在重新安裝後,這些資料還是存在。這是因為在 Android 6.0 以上的版本,Android 都會自動備份應用程式的資料,在重新安裝後會恢復這些資料。

[C#] 避免 Boxing/Unboxing 效能問題

之前在撰寫 Unity 套件的時候,因為不知道使用者會用什麼類別來傳資料,所以都轉成 object 型別來傳遞,後來發現這會有效能上的問題。本篇文章就來探討這個問題以及解法。