Unity C# | 建構式(constructor)

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

一、前言

  這篇文章將會介紹建構式(Constructor),這是隱藏於程式腳本的知識,程式極常使用建構式,但初階程式員不需要知道它。

二、建構式

  學習遊戲程式的第一站,我想大多數人都是學習如何讓物件移動,因此會使用座標系統(Vector3或Vector2),在新建一個Vector3實例的過程中,我們就使用到了建構式。

1. 基本定義

  首先,建構式"不用"為資料類別命名(例如為新的 flaot 命名 a),無 void 參數亦不回傳,用於溝通呼叫該函式(建構式)者,如何設定該腳本中的參數。

  若無建立建構式,則系統自動撰寫隱藏的建構式,該建構式為空函式,無任何程式碼區塊,自行創立建構式來定義參數,是中高階程式降低耦合性的手段。

2. 建構與初始化

public Player(HealthSystem hp,EnergySystem mp)
{
this.HealthSystem = hp;
this.EnergySystem = mp;
}

  我們可以把建構式看成創建新角色的流程,裡面的欄位很完整,有血量、魔力、攻擊力與防禦力,建構式就像是一個設計指令,你要怎麼樣的角色?

  如果我們沒有特別撰寫建構式,那這一個角色就會是一個默認的角色,所有的數值都是零,因此這個角色不存在;如果我們自己撰寫一個建構式,則可以讓角色有一個默認的基礎數值。

  如果我們相要這個角色特別一點,我們可以使用使用別的建構式創造一個比較強大的角色,這將使用物件導向多載的概念,也就是相同的函式命名但攜帶不同的參數。

3. 默認與參數

  沒有參數的建構式我們稱之為默認的建構式,隱藏在程式腳本後的是系統幫你寫好的默認建構是;攜帶參數的建構式可以讓別人建構此程式腳本時,指定一些基礎的數值,譬如等級十。

三、Unity 中的使用

  我們來看看在 Unity 中我們已經用過的建構式,這些建構是從新手到現在都依然會持續使用的程式,我們很常使用到它們的建構式。

1. 三維座標(Vector3)

我們很常在 Unity 的程式馬中撰寫關於 Vector3 的內容,例如:

vector3 playerPosition = new Vector3(0,0,0);

  上面使用 new 關鍵字創建一個新的三維向量,三維向量本身就是一個程式腳本,使用關鍵字就是在使用建構式。

2. 顏色(Color)

如果你有使用過顏色,那你應該也會使用類似的寫法:

Color boxcolor = new Color(float r, float g, float b);

  如同座標系統,這也是在調用建構式,而我們除了可以寫RGB以外,還可以在後面添加透明度,同個名稱不同參數的概念稱之為多載:

Color boxcolor = new Color(float r, float g, float b,float a);

3. 四元數(Quaternion)

  如果你曾經撰寫過物件轉向或旋轉,那你肯定有聽過四元數,不過我們通常會用四元數字帶的腳本去轉換成三維座標,所以這邊不特別舉例。

四、後記

  建構式是最讓我震驚的一個學習知識,當我了解到建構式的概念後,我發現有很多程式設計上的東西都被點通了,有趣的地方在於,我是在接觸物件導向的設計模式時才碰觸到建構式,而當我學會有限狀態機後,我發現建構式是降低耦合性的重要手段。














































留言
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
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
這篇文章將會講述設計模式中的狀態模式,其資料源自於書籍、網路、個人理解,從簡介→架構→撰寫→測試的整個流程進行介紹與分享。
Thumbnail
這篇文章將會講述設計模式中的狀態模式,其資料源自於書籍、網路、個人理解,從簡介→架構→撰寫→測試的整個流程進行介紹與分享。
Thumbnail
這篇文章將會介紹建構式(Constructor),這是一個隱藏在程式腳本中的重要知識,我們極常使用建構式,但新手程式員幾乎不會知道它。
Thumbnail
這篇文章將會介紹建構式(Constructor),這是一個隱藏在程式腳本中的重要知識,我們極常使用建構式,但新手程式員幾乎不會知道它。
Thumbnail
這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。
Thumbnail
這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。
Thumbnail
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
Thumbnail
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
Thumbnail
這篇文章將會分享一場討論程式發展階段的體悟。
Thumbnail
這篇文章將會分享一場討論程式發展階段的體悟。
Thumbnail
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
Thumbnail
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
Thumbnail
介紹 在過去的歷史裡開發程式都是以呼叫Function的方式來做程式開發,後來才有了物件導向設計的概念,而物件導向程式設計的概念就是,使用【物件】的方式來設計程式。 Q: 什麼是【物件】? A:【物件】會包含以下這四個特性: 抽象(Abstraction) 封裝(Encapsulation)
Thumbnail
介紹 在過去的歷史裡開發程式都是以呼叫Function的方式來做程式開發,後來才有了物件導向設計的概念,而物件導向程式設計的概念就是,使用【物件】的方式來設計程式。 Q: 什麼是【物件】? A:【物件】會包含以下這四個特性: 抽象(Abstraction) 封裝(Encapsulation)
Thumbnail
  這篇文章將介紹public函式應用,回顧保護層級、無類型兩個核心重點,再介紹遊戲製作重點程式(Script),再到控制中心Script製作與方針。
Thumbnail
  這篇文章將介紹public函式應用,回顧保護層級、無類型兩個核心重點,再介紹遊戲製作重點程式(Script),再到控制中心Script製作與方針。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News