iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
自我挑戰組

Unity操作環境新手之旅系列 第 11

Day11:Script Referencing

  • 分享至 

  • xImage
  •  

今天簡單講一下什麼是Script Referencing:

腳本引用 (Script Referencing)
腳本引用指的是在一個腳本中訪問或調用另一個腳本的變量、方法和組件。這在你希望多個對象或腳本之間進行通信時非常常見。主要有以下幾種方式:

直接引用:一個腳本可以直接訪問另一個腳本的變量或方法,通過獲取該腳本的引用來實現。

public class Example : MonoBehaviour
{
public OtherScript otherScript; // 引用另一個腳本

void Start()
{
    otherScript.SomeMethod(); // 調用另一個腳本中的方法
}

}
在 Unity 編輯器中,你可以將掛載有相應腳本的物件拖到這個引用變數中。

查找方法:你也可以使用像 GetComponent()、FindObjectOfType() 或 GameObject.Find() 這樣的查找方法來在運行時引用一個腳本。

void Start()
{
OtherScript otherScript = GetComponent(); // 從同一個物件中獲取腳本
otherScript.SomeMethod();
}
單例模式 (Singleton)
單例模式是一種設計模式,用於限制一個類在遊戲運行期間只有一個實例,並確保這個實例可以從任何地方訪問。這對於管理全局狀態或系統非常有用,比如遊戲管理器、音頻管理器或輸入管理器。

在 Unity 中實現單例模式的步驟:

創建一個靜態的類實例。
確保在運行時只創建一個實例,並且這個實例可以在代碼中隨時訪問。
以下是一個基本的單例模式範例:

csharp
複製程式碼
public class GameManager : MonoBehaviour
{
public static GameManager instance;

void Awake()
{
    if (instance == null)
    {
        instance = this; // 將靜態實例指向這個物件
        DontDestroyOnLoad(gameObject); // 保證這個物件在場景之間不被銷毀
    }
    else
    {
        Destroy(gameObject); // 銷毀重複的實例
    }
}

}
在這裡:

instance 是一個靜態變量,用來保存 GameManager 的唯一實例。
Awake() 保證如果已經有一個實例存在,則銷毀其他重複的實例,並且通過 DontDestroyOnLoad 使該物件在場景切換時保持不被銷毀。
單例模式經常用於當你需要某些系統或數據在場景之間持續存在,或者確保只運行一個副本(例如管理音頻或追蹤玩家數據)時。


上一篇
Day10:Instantiation
下一篇
Day12:Layers和Tags介紹
系列文
Unity操作環境新手之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言