Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
106
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

Unity プラットフォーム判別

プラットフォーム判別

Unityでプラットフォームごとに、コードを変えたい場合は多々あると思います
このページではUnityでのプラットフォーム判別方法をまとめています

1.Platform Dependent Compilationを使う

Platform Dependent Compilation(プラットフォーム依存コンパイル)を使う事で、コンパイル時に
プラットフォームに応じてコードを分けることが出来ます

実際のコードは以下のように書きます if,else if,elseを使う事が出来ます

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

#elif UNITY_IPHONE
    Debug.Log("Unity iPhone");
#else
    Debug.Log("Any other platform");
#endif

条件は、プラットフォームやUnityのバージョンを指定する事が出来ます

よく使われる例を挙げておきます

プラットフォーム 条件文
Unityエディタ UNITY_EDITOR
MacOS UNITY_STANDALONE_OSX
Windows UNITY_STANDALONE_WIN
LINUX UNITY_STANDALONE_LINUX
WebPlayer UNITY_WEBPLAYER
iPhone UNITY_IPHONE
Android UNITY_ANDROID
Unity 4.5 UNITY_4_5

詳細は公式ページをご覧下さい

また、Player Settings の Other Settingsからカスタム定義を加える事も出来ます
2_1.png

詳細は公式ページをご覧下さい

2.Application.platformを使う

Application.platformを使う事で、実行時のプラットフォームを判別することが出来ます

Unity.cs
if (Application.platform == RuntimePlatform.Android) {
  // Android
}
else if (Application.platform == RuntimePlatform.IPhonePlayer) {
  // iOS
}
else if (Application.platform == RuntimePlatform.WindowsPlayer) {
  // Windows
}
else  {

}

指定出来るプラットフォームは公式サイトを参照してください

3.Debug.isDebugBuildを使う

2_2.png

Debug.isDebugBuildによってデバッグ状態でビルドされたかどうかを判別することが出来ます

Unity.cs
 if (Debug.isDebugBuild)
            Debug.Log("This is a debug build!");
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
106
Help us understand the problem. What are the problem?