Unityのスクリプトでプラットフォームの判別処理を行う
広告を実装する際などでAndroidとiOSではIDが違います。さらに、パソコン(Unity)や実機のスマホでデバッグする際にも処理や表示を変えたい場合があります。わざわざその違いだけでプロジェクトを2つにすることは馬鹿馬鹿しいですし、労力がかなりかかります。そんな時はUnityのエディター内(スクリプト)で、プラットフォーム別に処理を変えることができます。
このような処理は簡単なコードで記述することができます。 この記事ではUnityのスクリプトでプラットフォームの判別処理の書き方を学べます。
プラットフォーム依存コンパイルと言う機能でプラットフォームの判別を行います。
プリプロセッサ #if を用いて、プラットフォームの種類によって処理を分けています。
プログラム初心者の方などには、よくわからない言葉だと思いますが、ここではこのような言葉があることだけ覚えておけば結構です。
判別処理の仕方だけ覚えてしまえば良いのです。
それでは以下が、判別処理です。
基本的な【Android】【iOS】【UnityEditor】の判別
#if UNITY_EDITOR
Debug.Log("Unityエディタ");
#elif UNITY_ANDROID
Debug.Log("Android");
#elif UNITY_IOS
Debug.Log("iOS");
#else
Debug.Log("Other");
#endif
プラットフォームごとに実装したい処理を分けてコードの中に入れることで、プラットフォームごとの処理を実装できます。
実際の実装はコピペで簡単にできますので、Debug.Logの部分に自分の処理コードを入力してください。
その他の条件分
条件については、プラットフォームやUnityのバージョンなども指定する事が出来ます。
ここでは、よく使われる例を挙げておきます。
プラットフォーム | 条件文 |
Unityエディタ | UNITY_EDITOR |
MacOS | UNITY_STANDALONE_OSX |
Windows | UNITY_STANDALONE_WIN |
LINUX | UNITY_STANDALONE_LINUX |
WebPlayer | UNITY_WEBPLAYER |
iPhone | UNITY_IPHONE |
Android | UNITY_ANDROID |
Unity 4.5 | UNITY_4_5 |
その他の条件もたくさんありますので、もっと知りたい方は公式ページを見てみてくださいね。