Unityの開発はUnity Editorで行うが、Editor上と実際の実行プラットフォーム(Windows, Mac, Linux、iOS, Androidなど)とで処理を変えたい場合がある。これには次の2つの方法がある。
1. "Application.platform"を使う方法
実行時にスクリプト内で現在の実行プラットフォームを見て、処理を変える方法。
プラットフォームのクラス変数は、"RuntimePlatform"に定義されている。
2. プリプロセッサ"UNITY_EDITOR"を使う方法
コンパイル時に(つまり実行前に)ターゲットとなるプラットフォームを評価して、実行する処理を選択する方法。実行時に動的に評価するのではなく、プラットフォームに応じて実行ファイル自体を変えてしまうもの。
#if UNITY_EDITOR エディターでの処理 #else エディター以外での処理 #endif
のように記述する。
さらに、エディター上でも、実行中か否かで別処理にしたい場合はApplication.isPlaying
と組み合わせて、たとえば、
#if UNITY_EDITOR nextBlendTime = Application.isPlaying ? blendTime : 0f; #else nextBlendTime = blendTime; #endif
のように書けばよい。
より細かく、
などの区別も可能。
また、
- UNITY_4_6
など、Unityのバージョンによって処理を変えることもできる。
プリプロセッサで使用できるプラットフォーム種類の変数は次を参照。