文章

介紹C#腳本與Unity中的基本腳本結構

在Unity中,C#腳本是用來編寫遊戲邏輯和控制遊戲物體行為的核心工具。掌握基本的C#腳本結構和如何在Unity中使用它們,是開發遊戲的基礎。

1. C#腳本概述

C#腳本是在Unity中用來編寫遊戲行為的語言。每個C#腳本通常繼承自 MonoBehaviour 類,這使得它可以掛載到遊戲物體 (GameObject) 上,並且能夠使用Unity的各種事件和方法。

2. 創建C#腳本

在Unity中創建C#腳本非常簡單:

  1. 創建腳本
    • 右鍵點擊 Assets 資料夾或場景中的某個遊戲物體,選擇 Create > C# Script
    • 為腳本命名,例如 MyFirstScript
  2. 打開腳本
    • 雙擊剛剛創建的腳本,它將在默認的C#編輯器(如Visual Studio)中打開。

3. Unity中的基本腳本結構

當你創建一個新的C#腳本時,Unity會自動生成一個基本的腳本結構:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using UnityEngine;

public class MyFirstScript : MonoBehaviour
{
    // Start 是在腳本啟動時調用的
    void Start()
    {
        // 這裡的代碼只會在遊戲開始時執行一次
        Debug.Log("Hello, Unity!");
    }

    // Update 是在每一幀調用的
    void Update()
    {
        // 這裡的代碼會在每一幀執行
    }
}

4. 腳本的核心部分

命名空間 (Namespace)

1
using UnityEngine;
  • using UnityEngine; 讓腳本可以訪問Unity API的功能,如 GameObjectTransform 等。

類定義 (Class Definition)

1
2
3
4
public class MyFirstScript : MonoBehaviour
{
    // 類的內容
}
  • public class MyFirstScript : MonoBehaviour 定義了一個名為 MyFirstScript 的類,繼承自 MonoBehaviour,使它成為一個可以附加到遊戲物體上的腳本。

Start 方法

1
2
3
4
void Start()
{
    // 初始化代碼
}
  • Start 方法在腳本啟動時(遊戲運行時或物體激活時)調用。這裡的代碼只會執行一次,通常用來初始化變數或設置初始狀態。

Update 方法

1
2
3
4
void Update()
{
    // 每幀執行的代碼
}
  • Update 方法在每一幀都會被調用,這使得它非常適合用來檢測用戶輸入或更新物體的運動。

5. 其他常用的Unity方法

除了 StartUpdate,Unity還提供了許多其他方法來處理不同的遊戲事件。

Awake 方法

1
2
3
4
void Awake()
{
    // 比 Start 更早執行的初始化代碼
}
  • Awake 方法在物體被創建時最早執行,常用於設置初始參數或加載資源。

FixedUpdate 方法

1
2
3
4
void FixedUpdate()
{
    // 用於處理物理相關的更新
}
  • FixedUpdate 方法以固定的時間間隔調用,通常用來處理物理更新,如力或碰撞檢測。

OnCollisionEnter 方法

1
2
3
4
void OnCollisionEnter(Collision collision)
{
    // 當物體與其他物體發生碰撞時調用
}
  • OnCollisionEnter 方法在物體與其他物體發生碰撞時調用,可以用來處理碰撞事件。

6. 變數與屬性

C#腳本中還可以定義變數來儲存數據,這些變數可以在 Inspector 面板中可視化並編輯。

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MyFirstScript : MonoBehaviour
{
    public int speed = 5;  // 公共變數,可在Inspector面板中編輯
    private int score;     // 私有變數,僅在腳本內部可見

    void Start()
    {
        score = 0;  // 初始化變數
    }

    void Update()
    {
        // 使用變數來控制遊戲物體的行為
        transform.Translate(Vector3.forward * speed * Time.deltaTime);
    }
}

7. 將腳本附加到遊戲物體

當你完成腳本編寫後,將它附加到遊戲物體上使其生效:

  1. 拖拽腳本到遊戲物體
    • Hierarchy 視圖中選擇一個遊戲物體,然後將腳本從 Project 視圖中拖放到 Inspector 面板中。
  2. 檢查並設置腳本參數
    • 如果腳本中有公開變數,你可以在 Inspector 面板中看到並設置這些參數。

小結

C#腳本是Unity中創建遊戲邏輯的關鍵工具,通過學習腳本的基本結構和常用方法,你可以開始控制遊戲物體的行為並創建互動式的遊戲體驗。熟練掌握這些概念將為進一步的遊戲開發奠定堅實的基礎。

本文章以 CC BY 4.0 授權