【Unity/C#】SceneManager(シーン管理)の基本と書き方

Unityコード専用検索

コードの型

現在のシーン情報を取得し、その名前やIDを確認します。

C#

using UnityEngine.SceneManagement; // これを冒頭に書くのが必須!

void Start()
{
    // 現在のシーン情報を取得
    var currentScene = SceneManager.GetActiveScene();
    
    // シーンの名前を表示
    Debug.Log("今のシーン名: " + currentScene.name);
}

コードの仕組み

Unityのプロジェクトは複数の「シーン(レベル)」で構成されており、SceneManager がそれらを取りまとめています。

  • シーンの特定: GetActiveScene() は、現在動いているメインのシーン情報を返してくれます。
  • 情報へのアクセス: 返ってきたデータには name(名前)や buildIndex(ビルド番号)などの情報が入っています。

活用例(リトライ処理)

ゲームオーバーになった際、「同じシーンを最初からやり直す(リロードする)」処理には SceneManager が欠かせません。

C#

using UnityEngine.SceneManagement;

public void ReloadScene()
{
    // 現在のシーン名を取得して、もう一度読み込む
    string sceneName = SceneManager.GetActiveScene().name;
    SceneManager.LoadScene(sceneName);
}

その他(重要ポイント)

  • 名前空間の追加: using UnityEngine.SceneManagement; をスクリプトの一番上に書かないと、SceneManager は認識されません。これが無いとエラーになるので一番の注意点です。
  • Build Settingsの確認: シーンを切り替えるには、Unityエディタの File > Build Settings に、使いたいシーンがすべて登録されている必要があります。登録されていないシーンは読み込むことができません。
  • シーン遷移の命令:
    • GetActiveScene():今のシーンを知る。
    • LoadScene("シーン名"):別のシーンへ移動する。

初心者向けまとめ

SceneManager は、「ゲーム全体の進行を司る司令塔」です。

  • 今どこにいるかを確認する(GetActiveScene
  • 次のステージへ進む(LoadScene

コメント

タイトルとURLをコピーしました