(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


オブジェクトをエディタ専用(ビルド時は自動で消える)に出来る、EditorOnlyタグの使い方と注意点【Unity】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 6000.0.34f1


はじめに

Unityでゲームを開発している時に

「エディタ上でしか使わないデバッグ用のオブジェクト(ビルド時は消したい)」

みたいな物を使いたくなる事がよくあります。


今回はそんな時に使える、EditorOnlyというタグの紹介です!


EditorOnlyの使い方と注意点

EditorOnlyタグは、設定したオブジェクトをエディタ専用にするというという特殊なタグで、

これを付けたオブジェクトはビルド時だけ消えます。


使い方は簡単、他のタグと同様にInspectorのTagから選択するだけ。


ただし、当然のことながら、消すオブジェクトやそのコンポーネントを他から参照していると、

実行ビルドでは存在せず、NullReferenceExceptionが発生するので注意が必要です。


ちなみにEditorOnlyを設定したオブジェクトの子はEditorOnlyを設定していなくても消えます。


さらにシーンに配置してないPrefabもEditorOnlyを設定してると消えるので、

例えばResourcesに配置して、プログラムからロードして使おうとしているものに

EditorOnlyを設定してしまうと、エディタ上では動くのにビルド時には動かないみたいな事に繋がります。


また、あくまでエディタ上専用なので、「開発用ビルドでテストしたい」みたいな時にも使えず、

上記の注意点も含め、簡単には使えますが、使い所は限られている感じです。


なお、「エディタ上と開発用ビルドでだけ使いたい(リリースビルドでは消したい)」

みたいな時はDEVELOPMENT_BUILDやDEBUGといったシンボルを使って

プログラムからオブジェクトを生成する形にするのがいいかと思います。

#if DEVELOPMENT_BUILD
/*開発用ビルド時のみ実行したい処理*/
#endif

#if DEBUG
/*開発用ビルド時のみ実行したい処理*/
#endif