技能誌

Unity教學 EP.7|場景切換與管理(Scene Management)

專欄/短評
寄樹人猿 RON的頭像
寄樹人猿 RON
更新日:2025年4月2日

Unity 裡的遊戲通常不只一個畫面,從「主選單 → 遊戲關卡 → 結算畫面」都屬於不同場景(Scene)。這篇我們來學會場景之間的切換,為你的遊戲建立完整流程!


一、建立與儲存場景

你可以從 File → New Scene 新增場景。設計完後,記得 Ctrl + S 儲存,建議放在 Scenes 資料夾裡以方便管理。

範例:

  • StartScene:主選單
  • GameScene:主遊戲關卡
  • EndScene:結束畫面


二、加入Build Settings

所有你要切換的場景都必須加入 Build Settings 才能被使用。步驟如下:

  • 開啟 File → Build Settings
  • 點選「Add Open Scenes」加入目前場景
  • 多個場景可依上下順序排序,index從0開始(通常是主場景)


三、使用 SceneManager 切換

先加入命名空間:

using UnityEngine.SceneManagement;

在按鈕中呼叫切換方法:

public void GoToGameScene()
{
    SceneManager.LoadScene("GameScene");
}

你也可以用數字來切換:

SceneManager.LoadScene(1); // 載入Build Index為1的場景


四、延伸:非同步加載與Loading畫面

有時場景資源多、載入時間長,建議使用 LoadSceneAsync

IEnumerator LoadSceneWithDelay(string sceneName)
{
    AsyncOperation operation = SceneManager.LoadSceneAsync(sceneName);
    while (!operation.isDone)
    {
        // 可以顯示讀取進度條
        yield return null;
    }
}

可搭配一個 LoadingScene 作為中介,讓玩家不會看到黑畫面。


五、物件跨場景保存

如BGM物件或全域管理器可使用:

DontDestroyOnLoad(gameObject);

這樣切換場景時,該物件不會被摧毀。

Unity教學-從零開始打造你的遊戲世界
Unity 一對一/小班制教學|新手入門到進階開發,依需求客製課程內容
IT/程式 > 程式設計
$ 100000
Unity教學-從零開始打造你的遊戲世界
$ 100000
Unity教學-從零開始打造你的遊戲世界
0 / 1000
回到文章列表