这一篇要学的是unity平台预处理,对这一块还不是很了解的同学可以看一下,加深一下自己的印象。

在开发中,特别是unity的跨平台中,我们常常会在各个平台游走,如安卓版,苹果版,PC版......。在此不同的平台上,有可能我们须要做不同的操作。然而我们就能够用unity的自带的平台宏定义方式来做平台的推断。Unity帮我们定义了例如以下平台预处理:


以后我们能够依据如上宏定义就能够去轻而易举的非常easy去在我们代码中增加推断了。我举个简单样例,例如以下:
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Recompile : MonoBehaviour
  4. {
  5. private string platform = string.Empty;
  6. // Use this for initialization
  7. void Start()
  8. {
  9. DebugPlatformMesaage();
  10. }
  11. void DebugPlatformMesaage()
  12. {
  13. #if UNITY_EDITOR
  14. platform = "hi,大家好,我是在unity编辑模式下";
  15. #elif UNITY_XBOX360
  16. platform="hi,大家好,我在XBOX360平台";
  17. #elif UNITY_IPHONE
  18. platform="hi,大家好,我是IPHONE平台";
  19. #elif UNITY_ANDROID
  20. platform="hi,大家好,我是ANDROID平台";
  21. #elif UNITY_STANDALONE_OSX
  22. platform="hi,大家好,我是OSX平台";
  23. #elif UNITY_STANDALONE_WIN
  24. platform="hi,大家好,我是Windows平台";
  25. #endif
  26. Debug.Log("Current Platform:" + platform);
  27. }
  28. }

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


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


比如我在上面圈起来的地方填写一个CUSTOM_ITF这个预编译指令。然后在DebugPlatformMesaage函数尾部增加这句话
  1. //新加入的内容
  2. #if CUSTOM_ITF
  3. customMsg = "我自己定义了预编译";
  4. #endif
  5. Debug.Log(customMsg);

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


当我们把我们自己定义的宏定义给去掉的时候,我们打印的信息就不会出来。

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