この記事でのバージョン
Unity 5.2.2f1 Personal
はじめに
C#では#defineでシンボルを定義し、#unddef でシンボルを未定義にする事ができます。
シンボルを使えば以下のように、
定義されているシンボルによって処理を変更できます。
なお、無効になっている場所はコンパイルもされません。
ただ、このシンボルは宣言したスクリプト内でしか使えないという問題があります。
Scripting Define Symbols
UnityではScripting Define Symbols を使う事で、シンボルをプロジェクト全体に反映できます。
Scripting Define SymbolsはPlayerSettings - Other Settingsから設定できます。
なお、複数設定したい場合は
DEBUG;DEBUG_HOGE
のように;区切りにすればOKです。
Scripting Define Symbolsの問題点
Scripting Define Symbolsを使う事で共通のdefineを定義する事はできますが、
正直かなり使い難いです。
欠点としては以下のような事が挙げられます。
- 全プラットフォームに一括設定ができない
- 羅列されるので設定されてる項目がわかり難い
- なんのシンボルか説明をコメントでかけない
- 未定義にする場合消すので、再設定がめんどい
また、CやC++のように、定数が設定できないのも地味に不便だったりします。
//Cでのdefineを使った定数宣言 #define WIDTH 640
こういう場合、エディタ拡張で使い易くしよう!
みたいになると思うのですが、すでに先人がいらっしゃいました。
定数の話を除けば、上記を使う事でかなり楽になりますね!
おわりに
実を言うと、上記の記事を発見する前に自分も作ってしまっていました……。
と言っても機能は結構違いますが……
定数の件についても疑似的にですが、解決してたりします。
この詳細については次回の記事で(:3っ)∋〜
------追記
書きました!