赞
踩
预定义标签 Script Define Symbols,编译器会在编译的时候根据预定义标签去生成对应的二进制编码。
点击导航栏菜单 -> Edit -> Project Settings -> Player,在 Inspector 窗口中打开 的 Player Settings 界面的 Script Define Symbols 栏。在这里用户可以新增自己的宏定义。
Unity 平台内置了一些宏定义,用于区分程序运行的平台和其版本号
https://docs.unity3d.com/Manual/PlatformDependentCompilation.html
平台相关的宏定义
名称 | 功能 |
---|---|
UNITY_EDITOR | 编辑器调用 |
UNITY_STANDALONE_OSX | 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义 |
UNITY_DASHBOARD_WIDGET | Mac OS Dashboard widget (Mac OS仪表板小部件) |
UNITY_STANDALONE_WIN | Windows |
UNITY_STANDALONE_LINUX | Linux的独立的应用程序 |
UNITY_STANDALONE | 独立的平台(Mac,Windows或Linux) |
UNITY_WEBPLAYER | 网页播放器(包括Windows和Mac Web播放器可执行文件) |
UNITY_WII | Wii游戏机平台 |
UNITY_IPHONE | iPhone平台 |
UNITY_ANDROID | Android平台 |
UNITY_PS3 | PlayStation 3 |
UNITY_XBOX360 | Xbox 360 |
UNITY_NACL | 谷歌原生客户端(使用这个必须另外使用UNITY_WEBPLAYER) |
UNITY_FLASH | Adobe Flash |
版本相关的宏定义
名称 | 功能 |
---|---|
UNITY_5 | define directive for the release version of Unity 5, exposed in every 5.X.Y release |
UNITY_5_0 | define directive for the major version of Unity 5.0, exposed in every 5.0.Z release |
UNITY_5_0_1 | define directive for the minor version of Unity 5.0.1 |
宏定义的用途
- 通过版本控制,可以让代码在更广泛的Unity版本上运行。
- 可以让某些代码仅在特定的情况下有效。例如,Unity中控制台日志是非常占用CPU的,无论是Debug.Log() 还是 print(),而且生成的应用安装包在运行时依然会输出日志。故在正式发布的时候,一定不能包含控制台日志。
#if UNITY_EDITOR
Debug.Log("log message");
#endif
if(Input.GetKey(KeyCode.Escape)) {
#if UNITY_EIDTOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。