Version: 2023.2
言語: 日本語
複数のシーンにデータをベイクする
シーンテンプレート

スクリプトを使って複数シーンの編集する

エディター内で、またはランタイムにスクリプトを使用して、複数のシーンを編集することができます。

エディターでスクリプトを使用する

エディター内でスクリプトを使用 (実行) する場合、以下を使用します。

  • Scene 構造体: Scene 構造体は、エディターとランタイムの両方で利用できます。シーン自体に関連するシーン名や、アセットパスなどのような、読み取り専用のプロパティがあります。
  • EditorSceneManager API: このクラスはエディターでのみ利用可能で、複数のシーンを設定する複数のシーンにデータをベイクする のページで説明した複数シーン編集機能をすべて実装するためのいくつかの関数を備えています。
  • SceneSetup ユーティリティクラス: Hierarchy ウィンドウにあるシーンの情報を保存するために使用するユーティリティクラスです。

ランタイムスクリプトの使用

ランタイムにスクリプトを使用して複数のシーンを編集する場合は、LoadSceneUnloadScene などの SceneManager クラスの関数を使用します。

ヒント:

  • シーンの プレハブ をインスタンス化するには、PrefabUtility.InstantiatePrefab を使います。
  • オブジェクトをシーンのルートに移動させるには、Undo.MoveGameObjectToScene を使用します。
  • エディターを再起動するたびに Hierarchy ウィンドウを設定する必要を避けるため、または異なる設定を保存するために、EditorSceneManager.GetSceneManagerSetup を使用します。これは、現在の設定を記述する SceneSetup オブジェクトのリストも取得します。シーン設定について保存したい他の情報とともに、オブジェクトを ScriptableObject にシリアライズすることができます。Hierarchy ウィンドウを復元するには、SceneSetups のリストを再作成し、EditorSceneManager.RestoreSceneManagerSetup を使用してください。
  • ランタイムにロードしたシーン (複数) のリストを取得するには、sceneCount を取得し、GetSceneAt でシーンを反復します。
複数のシーンにデータをベイクする
シーンテンプレート