unity平台预处理
在 Unity 开发,尤其是跨平台开发中,开发者常常需要在不同平台(如安卓版、苹果版、PC 版等)之间进行切换。由于不同平台可能需要执行不同的操作,Unity 提供了自带的平台宏定义方式来进行平台判断。
1. Unity 自带的平台预处理
Unity 为我们定义了一系列平台预处理宏,我们可以依据这些宏在代码中轻松添加平台判断逻辑。以下是一个简单的示例代码:
using UnityEngine;
using System.Collections;
public class Recompile : MonoBehaviour
{
private string platform = string.Empty;
// Use this for initialization
void Start()
{
DebugPlatformMesaage();
}
void DebugPlatformMesaage()
{
#if UNITY_EDITOR
platform = "hi,大家好,我是在 Unity 编辑模式下";
#elif UNITY_XBOX360
platform = "hi,大家好,我在 XBOX360 平台";
#elif UNITY_IPHONE
platform = "hi,大家好,我是 IPHONE 平台";
#elif UNITY_ANDROID
platform = "hi,大家好,我是 ANDROID 平台";
#elif UNITY_STANDALONE_OSX
platform = "hi,大家好,我是 OSX 平台";
#elif UNITY_STANDALONE_WIN
platform = "hi,大家好,我是 Windows 平台";
#endif
Debug.Log("Current Platform:" + platform);
}
}
如果当前处于 Editor 状态,运行上述代码后,控制台将打印出相应的信息。
2. 自定义宏定义
除了使用 Unity 自带的平台宏定义,我们还可以自定义宏定义。在 PlayerSetting 中可以进行自定义宏定义的设置。例如,在 PlayerSetting 中圈定的位置填写一个预编译指令 CUSTOM_ITF,然后在 DebugPlatformMesaage 函数尾部添加以下代码:
// 新加入的内容
string customMsg = string.Empty;
#if CUSTOM_ITF
customMsg = "我自己定义了预编译";
#endif
Debug.Log(customMsg);
运行代码后,在控制台就能看到输出的自定义信息。当我们去掉自定义的宏定义时,相应的打印信息将不会再输出。
3. 各版本号的宏定义
除了上述平台相关的宏定义,Unity 中还有各个版本号的宏定义。在开发插件时,这些版本号宏定义通常会被经验丰富的开发者所使用。
对于对 Unity 平台预处理这部分内容不太了解的同学,希望通过本文能加深对其的理解和印象。