ことばアルバム

にわかエンジニアのにわか備忘録

Unityでプラットフォームごとに分岐を作る

Unity使ってて、Unity EditorとiOS/Androidとで処理を分けたかったのでいろいろ調べてメモ。
やりたいことは単純で、共通で使うロジックはあるけどプラットフォームごとに微々たる差異があり、プラットフォームごとにファイル作るのはいけてないので該当の部分だけ分岐させたかった。


Platformごとに分岐をつくる

最初からUnity側でそういうのを用意してくれてるようでした。
なので、とくに新しく何かライブラリを取り込んだりすることも必要無く下記のように条件分岐させれば良いだけでした。

#if UNITY_EDITOR
    Debug.Log("Unity Editor");
#endif

#if UNITY_WEBPLAYER
    Debug.Log("web player");
#endif

#if UNITY_IPHONE
    Debug.Log("Iphone");
#endif

#if UNITY_ANDROID
    Debug.Log("android");
#endif

#if UNITY_STANDALONE_OSX
    Debug.Log("Stand Alone OSX");
#endif

#if UNITY_STANDALONE_WIN
    Debug.Log("Stand Alone Windows");
#endif

 
すごく簡単です。
もちろん、else句もいけます。

#if UNITY_EDITOR
    Debug.Log("Unity Editor");
#else
    Debug.Log("Other Platform");
#endif

 
ついでにelse if句も大丈夫。

#if UNITY_IPHONE
    Debug.Log("Iphone");
#elif UNITY_ANDROID
    Debug.Log("android");
#endif

 
たとえば保存するファイルのパスを取得する時に使ったりすればいい感じになりそうです。