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