この記事でのバージョン
Unity 5.3.4f1 Personal
はじめに
Unityでは使用するシーンはあらかじめ登録しておかなければなりません。
また、登録されていないのにロードしようとするとエラーが出ます。
手動で登録するとミスがおこるかもしれないので、自動で登録したいですね?
ということで、今回はビルドするシーンを自動で設定する記事です!
スクリプトからシーンを設定
EditorBuildSettingsのscenesにシーン(EditorBuildSettingsScene)を
追加する事で、スクリプトからビルドするシーンを設定できます。
//scenesはEditorBuildSettingsScene[]
EditorBuildSettings.scenes = scenes;
EditorBuildSettingsSceneは、
以下のようにパスを指定して生成する事ができます。
EditorBuildSettingsScene scene = new EditorBuildSettingsScene("Assets/Scenes/Scene1.unity", true) ;
自動設定
スクリプトから設定する方法が分かったので、後はシーン用のディレクトリを監視して、
シーンファイルに変更ある度に設定を更新すれば自動設定が可能になります。
ということで、ScenesInBuildUpdaterというクラスを作ってみました。
これはAssets/Scenes/Buildに入っているシーンだけを自動で設定、かつ
Assets/Scenes/Build/Firstに入ってるシーンを最初に設定するクラスです。
このスクリプトをEditor以下に入れると、以下のように自動で設定されるようになります。
任意のディレクトリにあるファイルが変更された時に処理を行う方法については以下の記事をどうぞ!
おわりに
今回の方法を応用すれば、設定によって読み込むシーンを自動で変えるなんてこともできます。
と思ったら、やっぱりやってる方がいました。
デバッグ設定なら、*Debug*.unityをシーンビルドから外す、UnityEditor。 · GitHub