こちらの記事は内容が古くなっています。最新の記事をご覧ください。
Project Settings - Player にある Scripting Define Symbols は、デバッグの有無や開発ターゲットの変更など、ちょくちょく設定することがあります。
この値はプログラムの #if 識別子と連動し、コンパイル結果に変化をつけられます。
#if UNITY_EDITOR && ASSETBUNDLE_SIMULATOR string[] levelPaths = UnityEditor.AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName(bundledir, scenename); LoadSceneParameters param = new LoadSceneParameters(); param.loadSceneMode = ascene.Mode; param.localPhysicsMode = LocalPhysicsMode.Physics3D; UnityEditor.SceneManagement.EditorSceneManager.LoadSceneAsyncInPlayMode(levelPaths[0], param); yield return null; #else yield return loadBundleCoroutine(scenename); SceneManager.LoadSceneAsync(scenename, ascene.Mode); #endif
が、毎回手動で追加 / 削除をするのにつかれました…。
ミスタイプすれば機能しないので、「あれ?」となることも多いです。
そこで楽をするための Editor 機能を作ってみました。
ソースコード
以下をダウンロード&解凍し、DefineSymbols.cs を Editor/ の下に配置してください。
使い方
Tools - Define Symbols を選択すると以下のウィンドウが開きます。
初回は Scripting Define Symbols に登録されたものが自動的に追加されています。
初回以降は、DefineSymbols.json というファイルに内容が保存されるので、Scripting Define Symbols を手で変更したとしても、その内容は残ります。
- 項目を追加
- Scripting Define Symbols に登録するワード
- 基本は Unknown。ビルドによって変更したい場合はそのビルドターゲットにする。例えば Windows ビルドだけ有効にする場合 Standalone を選ぶ
- 自分が覚えておくための説明書き。書かなくても OK
- チェックを入れるとキーワードを登録、チェックを外しておくと一旦登録対象から外れる