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

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

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

前言

  撰寫程式,能介紹的內容相當多,如何從中抽絲剝繭得到撰寫文章的方法就是一門需要鍛鍊的功夫,在撰寫程式的過程中,把飄忽的靈感記錄下來,就能得到許多值得撰寫的內容。

  這篇文章將介紹public函式應用,回顧保護層級、無類型兩個核心重點,再介紹遊戲製作重點程式(Script),再到控制中心Script製作與方針。

保護層級

  保護護層級主要在形容公用(public)跟私有(private),限制這個程式(Script)的使用範圍,公有讓資料可以被其他程式讀取,私有則否,在Unity中沒有特別註明的欄位與函式相當於私有,不過在程式設計師為了閱讀跟編輯習慣,似乎會習慣宣告私有,我也會習慣的宣告private。

  在之前的文章有介紹過保護層級的概念,詳細可以參考下面的連結,保護層級還應用在封裝、程式維護等方面。

Unity C# | 程式維護概念 & 唯讀(readonly) 使用

void函式

  在變數和函式中,基本上每一個有進行運算的資料,就需要回傳目標,如果不需回傳的無類型(void)類型,則不會進行回傳,代表運算完後不會回傳,計算本身就是目的,在資料型態的宣告前面添加「void」即可。

  在之前的文章有介紹過無類型的概念,像戲可以參考下面的連結,無類型通常用於函式,表達不會回傳的一種方式。

Unity C# | 無類型(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);
  ...
}

結尾

  公用有相當多的使用方法,在設計數值計算和事件監控時,很常使用到這種處理方式,最近在撰寫程式時,對公用函式有更深刻的理解,於是發這篇文章作為紀錄。


raw-image


avatar-img
瓶裝雪的沙龍
108會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言
avatar-img
留言分享你的想法!
瓶裝雪的沙龍 的其他內容
本文章主要介紹保護程式的方法及封裝方法的唯讀屬性。
本文章將介紹回傳及無類型回傳在變數與函數中的用法,以及他們比較常使用的方式。
本文章將介紹Unity產品生命週期的一部分,並提供使用範例程式碼。
在Unity中,Gizmos是製作輔助線的函式,用於繪製物理設線視覺化、協助重疊物件點擊、紀錄物件移動路徑等等,用途將相當廣泛,算是非必要的輔助程式,用於輔助遊戲製作。
這篇文章主要介紹父子關係,以及相關的程式控制代碼列舉。
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
本文章主要介紹保護程式的方法及封裝方法的唯讀屬性。
本文章將介紹回傳及無類型回傳在變數與函數中的用法,以及他們比較常使用的方式。
本文章將介紹Unity產品生命週期的一部分,並提供使用範例程式碼。
在Unity中,Gizmos是製作輔助線的函式,用於繪製物理設線視覺化、協助重疊物件點擊、紀錄物件移動路徑等等,用途將相當廣泛,算是非必要的輔助程式,用於輔助遊戲製作。
這篇文章主要介紹父子關係,以及相關的程式控制代碼列舉。
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。