Unity C# | public公用函式應用_控制中心(Mannager)

2022/02/25閱讀時間約 3 分鐘

前言

  撰寫程式,能介紹的內容相當多,如何從中抽絲剝繭得到撰寫文章的方法就是一門需要鍛鍊的功夫,在撰寫程式的過程中,把飄忽的靈感記錄下來,就能得到許多值得撰寫的內容。
  這篇文章將介紹public函式應用,回顧保護層級、無類型兩個核心重點,再介紹遊戲製作重點程式(Script),再到控制中心Script製作與方針。

保護層級

  保護護層級主要在形容公用(public)跟私有(private),限制這個程式(Script)的使用範圍,公有讓資料可以被其他程式讀取,私有則否,在Unity中沒有特別註明的欄位與函式相當於私有,不過在程式設計師為了閱讀跟編輯習慣,似乎會習慣宣告私有,我也會習慣的宣告private。
  在之前的文章有介紹過保護層級的概念,詳細可以參考下面的連結,保護層級還應用在封裝、程式維護等方面。

void函式

  在變數和函式中,基本上每一個有進行運算的資料,就需要回傳目標,如果不需回傳的無類型(void)類型,則不會進行回傳,代表運算完後不會回傳,計算本身就是目的,在資料型態的宣告前面添加「void」即可。
  在之前的文章有介紹過無類型的概念,像戲可以參考下面的連結,無類型通常用於函式,表達不會回傳的一種方式。

控制中心

  在進行遊戲製作,有很多時候會需要一個負責管理單位的控制中心,負責監督事件,依據不同狀況進行不同的控制,我通常會製作一個程式(Script)來管理這些物件,並依據不同命名為不同的控制中心。

敵人控制中心(EnemyMannager)

  用於敵方單位的啟用,在監控條件觸發後,直接呼叫該敵人內部的函示,達成多數敵人監控的目的。
//在Mannager中
[SerializeField]
private Object[] Enemys;
//Mannager中的判斷式
if(Enemys[0].變數 .........)
{
  ...
  Enemys[0].公用函式();
  ...
}
  在Unity中把敵人單位放置在Mannager中Enemys的陣列中的位置,就是程式中呼叫的陣列位置,由Enemy[0]為起點,不限制陣列上限。

數據控制中心(DataMannager)

  當擁有豐富的變數時可以創建一個數據控制中心來處理所有的變數,使用公用函式讓其他程式呼叫,可以陳列所有使用到的參數,依據不同的方向,可以有不同的變形方式,我將以「狀態控制中心(StateMannager)」繼續介紹。
  遊戲中有很多數值位於同一個單位,尤其是玩家,血量、恢復、攻擊力、子彈數、子彈恢復等等....,集合參數並建立公用函式,其他程式只需要呼叫即可。
//在StateMaanager中
private HP;
public void HPLose(int a)
{
  HP -= a;
}
//在其他程式中創建控制中心,使用Script抓取或Unity拉取都可,連結控制中心
private StateMannager stateMannager;
//在函數中
private void hurtPlayer()
{
  ...
  stateMannager.HPLose(5);
  ...
}

結尾

  公用有相當多的使用方法,在設計數值計算和事件監控時,很常使用到這種處理方式,最近在撰寫程式時,對公用函式有更深刻的理解,於是發這篇文章作為紀錄。
為什麼會看到廣告
96會員
242內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
發表第一個留言支持創作者!