(unity2018.2.15 visual studio for mac 7.6.11)
こんにちは!
今日はvisual studioで少し「ん?」ってなったことについて書いておこうかと。。。
unityで、プラットフォームに応じてコードを変えたい際に、プラットフォーム依存コンパイル・・・っていうんですかね。#defineを使って分岐させると思うのですが、その際のお話です
ちなみにおそらくmacのVisual studioじゃ無いと起きないバグな気はします。。。
今回スマートフォン向けのゲームを作っていて、androidとiosで一部処理を変えようと思ったので、#ifを使って分岐させようとしたのですが、
・・・え、UNITY_ANDROIDってなくね???
UNITY_IOSは普通に予測変換に出てくるんですよね。Androidがない。ではどうやってAndroidを条件にすればいいのか。
まずは検索。「unity UNITY_ANDROID」
普通に出てきました。
https://docs.unity3d.com/ja/current/Manual/PlatformDependentCompilation.html
この中に、UNITY_ANDROIDの項目あるんですが。
とりあえず、予測変換にはないものの、#IF UNITY_ANDROIDを記述してみましょうか。
void start(){ #if UNITY_ANDROID Debug.Log("Android OS"); #elif UNITY_IOS Debug.Log("iPhone OS"); #else Debug.Log("Others"); #endif }
ビルド(command + B)して見た所、エラーなし。
続いて、プラットフォームをAndroidにして、Playしてみる。
consoleには・・・
“Android OS”
あるんかいっ!
ということで、どうやらVisual studioがおかしいだけみたいです。
というかそれ以外にもvisual studioっておかしいんですけどね?
monodevelop、再び使えるようにならないですかね。。。
と、まぁそんな感じです。
予測変換に出てこなくても、調べて出てきたものはとりあえず打ってみるのもありかもしれません(笑)
それでは、またね〜
↓もしこの記事が参考になったら、下のいいねボタンを押していただけると非常に助かります!(ログイン不要)↓