预定义标签 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_EDITORDebug.Log("log message");
#endif
  • 可以实现类似 if - else 的流程控制。例如,Unity的退出游戏代码在不同环境下有可能并不相同。
if(Input.GetKey(KeyCode.Escape)) {#if UNITY_EIDTORUnityEditor.EditorApplication.isPlaying = false;#elseApplication.Quit();#endif
}

Unity 预定义标签相关推荐

  1. DI使用value属性与value标签的区别以及xml预定义实体引用

    差异类别 value属性注入 <value>标签注入 参数位置 值需要写在value属性值中,且加上双引号,即value="xxx" 值写在<value>x ...

  2. Bootstrap组件——【按钮(预定义样式类、边框颜色、大小、激活和禁用状态 、按钮标签)、按钮组(定义按钮组、工具栏按钮组、大小、嵌套按钮、垂直排列)、下拉菜单(定义下拉菜单、下拉菜单样式)】

    一.按钮        按钮是网页中不可缺少的一种组件,例如页面中搜索.注册等按钮.按钮还广泛应用于表单.下拉菜单.模态框等场景中. 1.预定义样式类 Bootstrap提供了btn来定义按钮,btn ...

  3. TVM部署预定义模型

    TVM部署预定义模型 本文通过深度学习框架量化的模型加载到TVM中.预量化的模型导入是在TVM中提供的量化支持之一. 本文演示如何加载和运行由PyTorch,MXNet和TFLite量化的模型.加载后 ...

  4. svg: svg预定义的形状

    SVG 有一些预定义的形状元素,可被开发者使用和操作: 矩形 <rect> 圆形 <circle> 椭圆 <ellipse> 线 <line> 折线 & ...

  5. php 为什么定义常量,php-将预定义常量定义为什么

    我有一个数据库类,该类自动建立与数据库的连接,并执行一些基本的输入筛选等操作.我正在查看设置一些预定义的常量,以调整类方法的行为.我应该将常量的值设置为什么?因为将永远不会直接引用或比较这些值,而仅在 ...

  6. php常用过滤htmlspecialchars() 函数把预定义的字符转换为 HTML 实体

    这个函数非常重要,特别是在处理中文字符时,同时开发过程中往往需对写入数据库或读取数据库的数据进行处理. htmlspecialchars(string,flags,character-set,doub ...

  7. 【struts2】预定义拦截器

    1)预定义拦截器 Struts2有默认的拦截器配置,也就是说,虽然我们没有主动去配置任何关于拦截器的东西,但是Struts2会使用默认引用的拦截器.由于Struts2的默认拦截器声明和引用都在这个St ...

  8. ANSI C and Microsoft C++中常用的预定义宏以及 宏定义中 # 和 ## 的区别

    ANSI C and Microsoft C++中常用的预定义宏以及 宏定义中 # 和 ## 的区别 第一部分,常见的预定义宏 第二部分,# 和 ## 再宏定义中的使用说明 第三部分,类似 #prag ...

  9. nginx proxy_pass 使用变量报错_nginx自定义变量与内置预定义变量

    nginx可以使用变量简化配置与提高配置的灵活性,所有的变量值都可以通过这种方式引用: $变量名 而nginx中的变量分为两种,自定义变量与内置预定义变量 内置变量 声明 可以在sever,http, ...

  10. 预定义类型未定义或导入_LimeSurvey基础教程(二)——问题类型

    在上一讲中,我们主要介绍了LimeSurvey的历史.功能.结构以及使用场景,其中就提到"20种以上题型,可自由运用".从某种意义上来说,调查就是由一系列的问题(类型)所组成,所以 ...

最新文章

  1. 数据结构(04)— 线性顺序表实战
  2. ios MKNetworkKit 的使用
  3. php把字符串变为数组_php将字符串转换为数组
  4. 初探目前最火的鸿蒙系统,跑了个 “hello world”!
  5. Intel Realsense pyrealsense2 points对象
  6. 如何突破JAVA程序员的分水岭
  7. centos6.6 源码安装mysql5.5_CentOS6.x下源码安装MySQL5.5
  8. 编写程序,对用户输入的n个整数,统计其最大数、最小数和平均值
  9. 一.路径规划---二维路径规划仿真实现-gmapping+amcl+map_server+move_base
  10. TA能让你家的那些“哑”终端都“活”过来
  11. 最高法明确:未成年直播打赏可退还
  12. python pandas csv getitem,访问.csv文件时使用Pandas获取KeyError
  13. 2013年13寸Macbook Air 安装单windows 10系统
  14. ESP32 系统篇: 优化系统启动时间
  15. 【人工智能】AI竞赛,到底有什么价值?
  16. Make Cents
  17. win10 Xshell 中文无法输入问题
  18. js计算两个日期之间的时间差
  19. word两端对齐字的间距太大,怎么办?
  20. Ubuntu配置网络代理

热门文章

  1. Ubuntu安装日常踩坑——Ubuntu安装过程中分区时出现空闲空间不可用的情况
  2. 单片机8255c语言程序,51单片机8255驱动C程序
  3. “抖快”拯救不了服装业,起死回生仍需依靠数字化
  4. 数据集成之数据整合(Data Consolidation)
  5. Android程序员必装apk
  6. 2019级软件工程应用与实践-人工智能快递柜(综述)
  7. can协议crc计算_CAN协议中CRC编码的硬件实现
  8. 常见的Cracker攻击手法
  9. linux内核协议栈 IPv4分片重组Ⅰ之相关数据结构
  10. 为什么要研发vin码识别?