Unity平台的预处理

    xiaoxiao2021-03-26  21

    Unity平台的预处理

    在开发中,特别是unity的跨平台中,我们常常会在各个平台游走,如安卓版,苹果版,PC版......。在此不同的平台上,有可能我们须要做不同的操作。

    然而我们就能够用unity的自带的平台宏定义方式来做平台的推断。

    Unity帮我们定义了例如以下平台预处理:

    名称

     描写叙述

    UNITY_EDITOR

    Unity编辑器

    UNITY_STANDALONE_OSX

    专门为Mac OS(包括UniversalPPCIntelarchitectures)平台的定义

    UNITY_DASHBOARD_WIDGET

    Mac OS Dashboard widget (Mac OS仪表板小部件)

    UNITY_STANDALONE_WIN

    Windows系统

    UNITY_STANDALONE_LINUX

    LINUX的独立的应用程序

    UNITY_STANDALONE

    独立的平台 (Mac, Windows or Linux).

    UNITY_WEBPLAYER

    网页播放器(包括WindowsMac Web播放器可执行文件)。

    UNITY_WII

    Wii游戏机平台。

    UNITY_IPHONE

    苹果系统

    UNITY_ANDROID

    安卓系统

    UNITY_PS3

    PlayStation 3

    UNITY_XBOX360

    VBOX360系统

    UNITY_NACL

    谷歌原生客户端(使用这个必须另外使用UNITY_WEBPLAYER

    UNITY_FLASH

    Adobe Flash

     

    1. using UnityEngine; 2. using System.Collections; 3. 4. publicclassRecompile:MonoBehaviour 5. { 6. privatestring platform =string.Empty; 7. // Use this for initialization 8. voidStart() 9. { 10. DebugPlatformMesaage(); 11. } 12. voidDebugPlatformMesaage() 13. { 14. 15. #ifUNITY_EDITOR 16. platform ="hi,大家好,我是在unity编辑模式下"; 17. #elifUNITY_XBOX360 18. platform="hi,大家好,我在XBOX360平台"; 19. #elifUNITY_IPHONE 20. platform="hi,大家好,我是IPHONE平台"; 21. #elifUNITY_ANDROID 22. platform="hi,大家好,我是ANDROID平台"; 23. #elifUNITY_STANDALONE_OSX 24. platform="hi,大家好,我是OSX平台"; 25. #elifUNITY_STANDALONE_WIN 26. platform="hi,大家好,我是Windows平台"; 27. #endif 28. Debug.Log("CurrentPlatform:"+ platform); 29. } 30. }

    上面假设我是在Editor状态下的话,就能看见打印出:

     我们也能够自定义宏定义,在PlayerSetting中定义:

     比如我在上面圈起来的地方填写一个CUSTOM_ITF这个预编译指令。然后在DebugPlatformMesaage函数尾部增加这句话:

     

    1.  //新加入的内容 

    2.  #if CUSTOM_ITF 

    3.          customMsg ="我自己定义了预编译"; 

    4.  #endif 

    5.          Debug.Log(customMsg); 

     

    然后我们执行看下,你就能在控制台看见我们输出的信息了:

     

    除了这些,unity中还有各个版本号的宏定义,一般开发插件的大牛都会用到。

     

     

    UNITY_2_6

    Platform define for the major version of Unity 2.6.

    UNITY_2_6_1

    Platform define for specific version 1 from the major release 2.6.

    UNITY_3_0

    Platform define for the major version of Unity 3.0.

    UNITY_3_0_0

    Platform define for the specific version 0 of Unity 3.0.

    UNITY_3_1

    Platform define for major version of Unity 3.1.

    UNITY_3_2

    Platform define for major version of Unity 3.2.

    UNITY_3_3

    Platform define for major version of Unity 3.3.

    UNITY_3_4

    Platform define for major version of Unity 3.4.

    UNITY_3_5

    Platform define for major version of Unity 3.5.

    UNITY_4_0

    Platform define for major version of Unity 4.0.

    UNITY_4_0_1

    Platform define for major version of Unity 4.0.1.

    UNITY_4_1

    Platform define for major version of Unity 4.1.

    UNITY_4_2

    Platform define for major version of Unity 4.2.

     

     

    补充:

    1/ 获得当前运行平台

    1.  //获得当前运行平台

    2.     Debug.Log("plat ="+Application.platform);

    1.  //可以获取到的平台类型 

    2.     publicenumRuntimePlatform 

    3.      { 

    4.          OSXEditor=0, 

    5.          OSXPlayer=1, 

    6.          WindowsPlayer=2, 

    7.          OSXWebPlayer=3, 

    8.          OSXDashboardPlayer=4, 

    9.          WindowsWebPlayer=5, 

    10.          WiiPlayer=6, 

    11.          WindowsEditor=7, 

    12.          IPhonePlayer=8, 

    13.          PS3 =9, 

    14.          XBOX360 =10, 

    15.          Android=11, 

    16.          NaCl=12, 

    17.          LinuxPlayer=13, 

    18.          FlashPlayer=15, 

    19.      }

     

    转载请注明原文地址: https://ju.6miu.com/read-350366.html

    最新回复(0)