Unity 预定义标签

末蓝、 2022-06-01 01:16 316阅读 0赞

预定义标签 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(),而且生成的应用安装包在运行时依然会输出日志。故在正式发布的时候,一定不能包含控制台日志。

  1. #if UNITY_EDITOR
  2. Debug.Log("log message");
  3. #endif
  • 可以实现类似 if - else 的流程控制。例如,Unity的退出游戏代码在不同环境下有可能并不相同。

    if(Input.GetKey(KeyCode.Escape)) {

    1. #if UNITY_EIDTOR
    2. UnityEditor.EditorApplication.isPlaying = false;
    3. #else
    4. Application.Quit();
    5. #endif

    }

发表评论

表情:
评论列表 (有 0 条评论,316人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Shell预定变量

    基本介绍 预定义变量是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用 基本语法 $$ 功能描述:当前进程的进程号(PID)

    相关 Unity 预定标签

    预定义标签 Script Define Symbols,编译器会在编译的时候根据预定义标签去生成对应的二进制编码。 点击导航栏菜单 -> Edit -> Project Se