この記事でのバージョン
Unity 2021.3.1f1
はじめに
ゲームのデバッグ用の機能等を実装したいが、
リリース時にはユーザから見えない(使えない)ようにしたい、という事がよくあります。
そんな時はDevelopment Buildを有効にし、
DEVELOPMENT_BUILDやDEBUGといったシンボルを使って
開発用ビルド時にのみ処理を実行する、みたいな感じにします。
#if DEVELOPMENT_BUILD /*開発用ビルド時のみ実行したい処理*/ #endif #if DEBUG /*開発用ビルド時のみ実行したい処理*/ #endif
そして今回はこの似たような2つのシンボル
DEVELOPMENT_BUILDとDEBUGの違いについての記事です!
DEVELOPMENT_BUILDとDEBUGの違い
まずDEVELOPMENT_BUILDはそのまま開発用ビルド時、
つまりDevelopment Buildを有効にしてビルドすると有効になります。
なので、Unityエディタ上では有効にならないため、UNITY_EDITORと一緒に使われる事が多いです。
#if DEVELOPMENT_BUILD || UNITY_EDITOR /*開発用ビルド時とUnityエディタ上での実行したい処理*/ #endif
次にDEBUGですが、こちらはUnityエディタ上でも有効になっています。
#if DEBUG /*開発用ビルド時とUnityエディタ上での実行したい処理*/ #endif
ただし、Unityの公式ドキュメントに載ってない(DEVELOPMENT_BUILDはある)事からも分かるように、
UnityではなくC#(.Net)のシンボルです。
なので今後Unity上での挙動が変わるかもしれないため(既にバージョンによって挙動が違うという噂も)、
基本的にはDEVELOPMENT_BUILD(とUNITY_EDITOR)を使った方が良いかと思います。