Unity C# | 建構式(constructor)

閱讀時間約 3 分鐘

一、前言

  這篇文章將會介紹建構式(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
105會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
這篇文章將會講述 Unity Visual Effect Graph 的系統簡介,並且簡單介紹這項系統主線上的四個核心組件。
這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
這篇文章將會講述最近的一個程式設計體悟,並且分享近期要參加的獨立遊戲製作者聚會,會展示課程的其中一個作品。
這篇文章將會分享與老師討論,在遊戲設計中設計元素之間的比重與遊戲要注重的設計重點或賣點。
這篇文章將會介紹 Unity Input System,這是一個適用於不同平台切換的官方系統,用於玩家按鍵輸入與不同控制器的操作。
這篇文章將會講述 Unity Visual Effect Graph 的系統簡介,並且簡單介紹這項系統主線上的四個核心組件。
這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
這篇文章將會講述最近的一個程式設計體悟,並且分享近期要參加的獨立遊戲製作者聚會,會展示課程的其中一個作品。
這篇文章將會分享與老師討論,在遊戲設計中設計元素之間的比重與遊戲要注重的設計重點或賣點。
這篇文章將會介紹 Unity Input System,這是一個適用於不同平台切換的官方系統,用於玩家按鍵輸入與不同控制器的操作。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 變數 宣告變數不能使用數字開頭,或是除了_之外的符號。 ·整數 int ·浮點數 float、double float 精度低、佔的資源較少,double
Thumbnail
遊戲裡面都會有導航系統,在Unity裡面就是利用NavMesh實現這個功能。 其實說是導航系統,NavMesh是建立導航系統的可移動範圍,再根據你的需求寫導航功能。
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
Unity (美股代號:U) 是全球最大的遊戲製作平台與龍頭引擎。不過股價自高點滑落並盤據20-30元已經有一段時間。此次財報非常樂觀,值得一看。
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
來談一下最近我很感興趣的一個投標,遊戲開發平台 Unity。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 變數 宣告變數不能使用數字開頭,或是除了_之外的符號。 ·整數 int ·浮點數 float、double float 精度低、佔的資源較少,double
Thumbnail
遊戲裡面都會有導航系統,在Unity裡面就是利用NavMesh實現這個功能。 其實說是導航系統,NavMesh是建立導航系統的可移動範圍,再根據你的需求寫導航功能。
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
Unity (美股代號:U) 是全球最大的遊戲製作平台與龍頭引擎。不過股價自高點滑落並盤據20-30元已經有一段時間。此次財報非常樂觀,值得一看。
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
來談一下最近我很感興趣的一個投標,遊戲開發平台 Unity。