【Unity】マルチシーンのコードでのロード
UnityでSceneManagerクラスを使って、複数のシーンを同時にロードして管理するサンプルスクリプトをここに示します。このスクリプトは、プログラムによってシーンのロード、アンロード、および切り替えを制御する方法を提供します。これを利用して、一定のシーン構成を自動的にロードし、動的なシーン管理を実現できます。
定義済みのシーンをロードする管理スクリプト
スクリプト
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneController : MonoBehaviour
{
    void Start()
    {
        LoadInitialScenes();
    }
    // 初期シーンをロードするメソッド
    void LoadInitialScenes()
    {
        SceneManager.LoadScene("MainScene", LoadSceneMode.Single); // メインシーンをシングルモードでロード
        SceneManager.LoadScene("UI", LoadSceneMode.Additive); // UIシーンをアディティブモードでロード
        SceneManager.LoadScene("Environment", LoadSceneMode.Additive); // 環境シーンもアディティブモードでロード
    }
    // シーンをアンロードするメソッド
    public void UnloadScene(string sceneName)
    {
        SceneManager.UnloadSceneAsync(sceneName);
    }
    // 新しいシーンをロードするメソッド
    public void LoadNewScene(string sceneName)
    {
        SceneManager.LoadScene(sceneName, LoadSceneMode.Additive);
    }
}スクリプトの使用方法
- スクリプトの保存: このSceneControllerスクリプトをUnityプロジェクトの任意のスクリプトファイルとして保存します。
- コンポーネントとして追加: このスクリプトをゲームオブジェクトにコンポーネントとして追加します。これがシーン制御の中心となります。
- スクリプトのカスタマイズ: 必要に応じてシーン名を変更し、特定のゲームの要件に合わせてロードおよびアンロードするシーンを調整します。
機能説明
- LoadInitialScenesメソッドでは、最初にロードするシーンを定義しています。- MainSceneをシングルロードモードでロードし、その後に他のシーン(例:- UI,- Environment)をアディティブモードで追加しています。
- UnloadSceneメソッドでは、不要になったシーンを非同期でアンロードします。
- LoadNewSceneメソッドでは、新たにシーンをアディティブモードで追加します。
このようにSceneManagerを使用することで、Unityでの複数シーンの管理が非常に柔軟かつ効率的に行えます。
インスペクターで登録したシーンをロードする管理スクリプト
using UnityEngine;
using UnityEngine.SceneManagement;
public class AutoLoadScenes : MonoBehaviour
{
    // 最初にロードするシーンのリスト
    public string[] scenesToLoad;
    void Start()
    {
        // 既存のシーン以外のシーンをロードする
        foreach (string sceneName in scenesToLoad)
        {
            SceneManager.LoadScene(sceneName, LoadSceneMode.Additive);
        }
    }
}訪問数 53 回, 今日の訪問数 1回





ディスカッション
コメント一覧
まだ、コメントがありません