この記事でのバージョン
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