前言
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Class | 類別
適用方法(function)、屬性(Property)、事件(Event)、欄位(Field)等成員的容器,如果是具狀態物件的方法就必須要用到new關鍵字,或是直接呼叫不具狀態的方法。
如果對於類別不了解,可以參考我之前寫的一篇文章,裡面講述了不少關於C# 的基本知識彙整,也可以到 Microsoft 官方查看。
模組化 | 不需要一直宣告
如果已經開始寫程式了,那有一些事情應該會困擾你,譬如說同樣的欄位宣告在每一份程式腳本中都需要,而他本身就是陣列了,每一次要使用都要回去腳本複製貼上,相當麻煩,且不易維護。
流程
- 新增一個腳本,在內建的類(Class)外,也就是在 MonoBehaviour 的程式碼區塊外創建一個公用的類。
2. 在這個類中,添加重複率極高的變數,譬如血量、魔力、耐久度等等,或是名稱和 ID 等等基本資料欄位。
3. 當作普通程式腳本連結方式來使用就可以了,宣告並讓它顯示在 Inspector中,宣告幾次就有幾份相同架構的東西。
4. 完成!如果有需要,還可以使用陣列來處理這些資料,讓架構本身用陣列的形式陳列。
P.s 新增的類不要做任何計算或函式,不是不可以,只是沒必要。
應用
模組化可以幫助程式員很好的進行快速架構,如果你是一位比較能舉一反三的人,那你可能會想到能藉此快速製作好工具包,沒錯,就是這樣,不過這是一個大工程,等到未來能用程式寫遊戲邏輯後再考慮吧!
接下來我會舉例常見的使用方式,總共有道具清單、角色清單、對話文本。
道具清單
在道具的資訊中,常常有道具的名稱、道具效果說明、道具 ID 、如果遊戲有經濟系統,還能安置經濟,可以模組化道具資訊,並讓每一個生成或放置在遊戲中的物件都帶有這些欄位。
角色清單
在角色的資訊中,常常有角色的名稱、角色職業、角色 ID 、如果有戰鬥系統,那可能還有生命魔力經驗值等等,可以模組化這些資訊,當創建一位新的角色或程式腳本,可以直接套用這份基礎欄位,再額外寫新的欄位。
對話文本
對話事件同樣也能使用模組化來進行撰寫,可以開文字欄位跟事件 ID,當我們需要呼叫某一個事件的時候,直接抓取不同事件的 ID 就會播放了,而對話可不只一句,因此可以使用陣列來工作。
後記
不過,模組化只適用於資訊量不夠大到需要資料庫,並且也沒有小到可以複製貼上就解決的時候才會使用,而我自己也不推薦新手在撰寫前幾款遊戲時使用需要模組化的任何一種程式撰寫方式,所以瞭解有這種作法其實就夠了。
瓶裝雪