这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战
概念
什么是宏定义?
宏定义是在不同的环境下执行不同的代码,比如在安卓平台和在苹果平台下执行不同的代码,这样你就可以专门为你的目标平台编译代码。
Unity平台相关编译特性由一些预处理指令组成,这些指令允许我们将剧本一段允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以任何您喜欢的方式响应用户输入的代码。
平台宏定义
- UNITY_EDITOR:Unity编辑器
- UNITY_EDITOR_WIN:Unity编辑器 Windows平台
- UNITY_EDITOR_OSX:Unity编辑器 MacOSX平台
- UNITY_EDITOR_LINUX:Unity编辑器 Linux平台
- UNITY_IOS :移动端IOS平台
- UNITY_IPHONE:已弃用,使用UNITY IOS代替。
- UNITY_ANDROID :移动端Android平台
- UNITY_PS4 :移动端PS4平台
- UNITY_XBOXONE :移动端XBOXONE平台
- UNITY_LUMIN:为Magic Leap平台
- UNITY_TIZEN:为Tizen平台定义指令
- UNITY_TVOS: 为Apple TV平台定义指令
- UNITY_WEBGL:为WebGL定义指令.
- UNITY_FACEBOOK:为FaceBook定义指令
版本宏定义
对于不同版本的Unity编辑器可以选择通过,格式如下:UNITY_X, UNITY_X_Y和UNITY_X_Y_Z。这种格式来区别Unity版本
示例:
- UNITY_5:指令用于Unity 5的发布版本
- UNITY_5_0:指令用于Unity 5.0的主要版本
- UNITY_5_0_1:指令用于Unity 5.0.1的主要版本
代码示例
void HongDingYi()
{
#if UNITY_EDITOR
Debug.Log("Unity 的编辑器...");
#elif UNITY_ANDROID || UNITY_IPHONE
Debug.Log("Android & iPhone 平台...");
#elif UNITY_STANDALONE
Debug.Log("PC平台(包括window,Mac,Linux)...");
#elif ZDY //名称和框中填写的一致即可
Debug.Log("自定义平台...");
#endif
//区分Unity版本
#if UNITY_5_6
Debug.Log("也可以用来区分Unity的版本...5.6");
#elif UNITY_5_6_1
Debug.Log("也可以用来区分Unity的版本...5.6.1");
#endif
#if UNITY_5_6_4
Debug.Log("也可以用来区分Unity的版本...5.6.4");
#endif
}
- 自定义宏定义图示
打开方式:File – BuildSettings – PlayerSetting – 找到要发布的平台设置(可以写多个宏定义中间使用“;’”分割开)