トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

プラットフォーム依存コンパイルで分けたのにEditorでスマホの処理も走る→解決【Unity】

プラットフォーム依存コンパイル

#if UNITY_EDITOR || UNITY_STANDALONE

 ~~~

#endif

のような記述でプラットフォームごとに処理を変えるやつ。

見たことはあるけど自分で使ったことはなかった。

docs.unity3d.com

xr-hub.com

不具合:エディタなのにスマホの処理も走る

PC&Editorとスマホで処理を変えたいときUpdate内で

#if UNITY_EDITOR || UNITY_STANDALONE

 PC向け処理

#endif

#if UNITY_ANDROID || UNITY_IOS

 スマホ向け処理

#endif

 って書いた。

なのにEditorでスマホ向け処理も動いてしまった

解決

#if UNITY_EDITOR || UNITY_STANDALONE

 PC向け処理

#else

 スマホ向け処理

#endif

 とするか

#if UNITY_EDITOR || UNITY_STANDALONE

 PC向け処理

#endif

#if (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR

 スマホ向け処理

#endif

 とすると動いた

最後に

最初、UNITY_IOSじゃなくて、もっと古い記述方法でやってた時は正常に動いてた気がする。古い記述のページ見つけられない・・・

UNITYってついてないやつ