Unity C# | 使用類(Class)將欄位模組化

閱讀時間約 2 分鐘

前言

  這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。

Class | 類別

  適用方法(function)、屬性(Property)、事件(Event)、欄位(Field)等成員的容器,如果是具狀態物件的方法就必須要用到new關鍵字,或是直接呼叫不具狀態的方法。
  如果對於類別不了解,可以參考我之前寫的一篇文章,裡面講述了不少關於C# 的基本知識彙整,也可以到 Microsoft 官方查看。

模組化 | 不需要一直宣告

  如果已經開始寫程式了,那有一些事情應該會困擾你,譬如說同樣的欄位宣告在每一份程式腳本中都需要,而他本身就是陣列了,每一次要使用都要回去腳本複製貼上,相當麻煩,且不易維護。

流程

  1. 新增一個腳本,在內建的類(Class)外,也就是在 MonoBehaviour 的程式碼區塊外創建一個公用的類。
2. 在這個類中,添加重複率極高的變數,譬如血量、魔力、耐久度等等,或是名稱和 ID 等等基本資料欄位。
3. 當作普通程式腳本連結方式來使用就可以了,宣告並讓它顯示在 Inspector中,宣告幾次就有幾份相同架構的東西。
4. 完成!如果有需要,還可以使用陣列來處理這些資料,讓架構本身用陣列的形式陳列。
P.s 新增的類不要做任何計算或函式,不是不可以,只是沒必要。

應用

  模組化可以幫助程式員很好的進行快速架構,如果你是一位比較能舉一反三的人,那你可能會想到能藉此快速製作好工具包,沒錯,就是這樣,不過這是一個大工程,等到未來能用程式寫遊戲邏輯後再考慮吧!
  接下來我會舉例常見的使用方式,總共有道具清單、角色清單、對話文本。

道具清單

  在道具的資訊中,常常有道具的名稱、道具效果說明、道具 ID 、如果遊戲有經濟系統,還能安置經濟,可以模組化道具資訊,並讓每一個生成或放置在遊戲中的物件都帶有這些欄位。

角色清單

  在角色的資訊中,常常有角色的名稱、角色職業、角色 ID 、如果有戰鬥系統,那可能還有生命魔力經驗值等等,可以模組化這些資訊,當創建一位新的角色或程式腳本,可以直接套用這份基礎欄位,再額外寫新的欄位。  

對話文本

  對話事件同樣也能使用模組化來進行撰寫,可以開文字欄位跟事件 ID,當我們需要呼叫某一個事件的時候,直接抓取不同事件的 ID 就會播放了,而對話可不只一句,因此可以使用陣列來工作。  

後記

  不過,模組化只適用於資訊量不夠大到需要資料庫,並且也沒有小到可以複製貼上就解決的時候才會使用,而我自己也不推薦新手在撰寫前幾款遊戲時使用需要模組化的任何一種程式撰寫方式,所以瞭解有這種作法其實就夠了。

瓶裝雪

為什麼會看到廣告
avatar-img
106會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
前言   這篇文章將會以 Blender 講述建模檔案如何匯入 Unity,並講述相關的知識和注意事項。 fbx | Unity 建議使用的檔案   在進行建模檔案的匯入時,如果去尋找相關資料,應該會看到建議任何匯入建模檔案到 Unity 的製作者使用 .fbx 檔案,這是因為它帶有幾個特色。 跨軟
前言   這篇文章將會講述碰撞事件的撰寫,跟碰撞事件有關的函式共有六種,分別為 OnCollisionEnter/Stay/Exit 和 OnTriggerEnter / Stay /Exit ,本篇文章將會講述通用的邏輯。 Collider | 碰撞體   在之前我從組件(Component)和程
前言   這篇文章將會介紹 UI 排版的實用工具。 GridLayoutGroup | 網格排版工具   這是我在撰寫遊戲 UI 時很常使用的 Component 今天在思考新的文章要寫什麼時發現還沒寫過,因此來跟大家介紹這時用的小組件。 運作原理   本質上來說,這個組件會控制他所有的子物件,並且
這篇文章會介紹圖層及相關應用,並藉由範例流程直白理解圖層的功用。
前言   這篇文章將會介紹生成物件的五種多載說明和三種應用流程。 Instantiate | 生成遊戲物件   這個英文單字的中文翻譯為「實例化」,如果單純用於 GameObject 的話你可以叫他生成物件,不過 Instatiate 還有其他的功用,像是 Clone 腳本和泛型化,這個就不在我們今
這篇文章將會講述新增造型的種類及簡單介紹。
前言   這篇文章將會以 Blender 講述建模檔案如何匯入 Unity,並講述相關的知識和注意事項。 fbx | Unity 建議使用的檔案   在進行建模檔案的匯入時,如果去尋找相關資料,應該會看到建議任何匯入建模檔案到 Unity 的製作者使用 .fbx 檔案,這是因為它帶有幾個特色。 跨軟
前言   這篇文章將會講述碰撞事件的撰寫,跟碰撞事件有關的函式共有六種,分別為 OnCollisionEnter/Stay/Exit 和 OnTriggerEnter / Stay /Exit ,本篇文章將會講述通用的邏輯。 Collider | 碰撞體   在之前我從組件(Component)和程
前言   這篇文章將會介紹 UI 排版的實用工具。 GridLayoutGroup | 網格排版工具   這是我在撰寫遊戲 UI 時很常使用的 Component 今天在思考新的文章要寫什麼時發現還沒寫過,因此來跟大家介紹這時用的小組件。 運作原理   本質上來說,這個組件會控制他所有的子物件,並且
這篇文章會介紹圖層及相關應用,並藉由範例流程直白理解圖層的功用。
前言   這篇文章將會介紹生成物件的五種多載說明和三種應用流程。 Instantiate | 生成遊戲物件   這個英文單字的中文翻譯為「實例化」,如果單純用於 GameObject 的話你可以叫他生成物件,不過 Instatiate 還有其他的功用,像是 Clone 腳本和泛型化,這個就不在我們今
這篇文章將會講述新增造型的種類及簡單介紹。
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
本章節是Java入門的第八天,主要介紹物件導向的概念。這包括了類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、Lambda表達式、泛型和反射等主題。每個主題都配有相關的程式碼範例,以協助讀者更好地理解這些概念。
Thumbnail
這個章節主要介紹了Swift程式語言中物件導向程式設計的基本概念,包括類別、建構子、公開、私有、受保護等等的概念。同時,也介紹了繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射等進階特性。
Thumbnail
本章節是一個初級的 TypeScript 教學,主要介紹了 TypeScript 中物件導向程式設計的各種核心概念,包括類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等。每個概念都通過詳細的解釋和實例代碼來進行深入的介紹。
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
本章講述了C#開發中的程序集,命名空間和 NuGet 包管理器。程序集是 .NET 應用的基礎,命名空間用於組織和預防命名衝突,而 NuGet 用於管理 .NET 的外部庫和依賴項。
Thumbnail
本章節的目的是讓讀者瞭解C#的物件導向特性,包括類別、繼承、多型、封裝等基本概念,以及介面、抽象類別、靜態類別等進階主題。此外,本章節也將介紹如何使用列舉、委派、Lambda表達式、泛型及反射,這些都是C#中常見的強大功能。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
類別 (class) 是在 ES6 中引入,用來作為建立新物件的模板。它可以將程式碼封裝起來。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
本章節是Java入門的第八天,主要介紹物件導向的概念。這包括了類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、Lambda表達式、泛型和反射等主題。每個主題都配有相關的程式碼範例,以協助讀者更好地理解這些概念。
Thumbnail
這個章節主要介紹了Swift程式語言中物件導向程式設計的基本概念,包括類別、建構子、公開、私有、受保護等等的概念。同時,也介紹了繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射等進階特性。
Thumbnail
本章節是一個初級的 TypeScript 教學,主要介紹了 TypeScript 中物件導向程式設計的各種核心概念,包括類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等。每個概念都通過詳細的解釋和實例代碼來進行深入的介紹。
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
本章講述了C#開發中的程序集,命名空間和 NuGet 包管理器。程序集是 .NET 應用的基礎,命名空間用於組織和預防命名衝突,而 NuGet 用於管理 .NET 的外部庫和依賴項。
Thumbnail
本章節的目的是讓讀者瞭解C#的物件導向特性,包括類別、繼承、多型、封裝等基本概念,以及介面、抽象類別、靜態類別等進階主題。此外,本章節也將介紹如何使用列舉、委派、Lambda表達式、泛型及反射,這些都是C#中常見的強大功能。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
類別 (class) 是在 ES6 中引入,用來作為建立新物件的模板。它可以將程式碼封裝起來。