Target Platformはマルチプラットフォーム開発を手助けするアセットです。
特徴:
・あるGameObjectの動作を特定のプラットフォームに限定する(エディタ上のみ、Android上のみ、WindowsエディタとiOS上のみ など)
・シンボルが定義されているかどうかを実行時にboolで取得可能(5.0以降のUnityが定義するシンボルのみ)
・RuntimePlatformを判別するためのショートハンド
・C#ソースコード付属
例えばiOS上でだけ表示したいボタンがある場合、GameObjectにiOSを指定するコンポーネントをアタッチするだけで実現できるようになります。AndroidもしくはUnityエディタ上でだけ、といった複数プラットフォームを指定する場合もコンポーネントを組み合わせるだけです。
Unity 5.0 ~ 2017.1まででビルド可能な20以上のプラットフォーム全てを指定することができます!
#if UNITY_IOS ~ #endif といったディレクティブを用いたコードはコンパイル時にアプリの容量を減らすのに役立ちますが、多くの場合はif文とbool値で処理を分けたいはずです。Target Platformを使うと
if(UnitySymbol.UNITY_WII)
という風に書くことができるようになります。これはビルドターゲットを変更したりビルドするときに初めて起きるコンパイルエラーを減らすのに役立ちます。
また、ランタイムプラットフォームの判別は
if(Application.platform
== RuntimePlatform.Android)
と長くなりがちですが、
if(Runtime.Platform.isAndroid)
と短く書けるようになります。
ソースコードが付属しているので細かい挙動は自分でカスタマイズ可能です。