【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);
}
}
}
訪問数 54 回, 今日の訪問数 1回




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