当前位置: 首页 > news >正文

【Unity】宏定义Scripting Define Symbols

1.宏的用处

我们在使用Unity开发的时候,经常需要根据不同环境执行不同的代码
比如安卓手机和苹果手机获取路径代码
这个时候,宏就派上用场了。

代码示例:

    //获取路径public string GtePath(){//不同平台,取不同的存储路径string strPath = string.Empty;//PC平台#if UNITY_STANDALONE_WINstrPath = Application.dataPath + "/../";//ios平台#elif UNITY_IPHONEstrPath = Application.persistentDataPath+"/";//安卓平台#elif UNITY_ANDROIDstrPath = Application.persistentDataPath+"/";#endifreturn strPath;}

2.常用的宏

  • UNITY_EDITOR: Unity编辑器
  • UNITY_EDITOR_WIN: Windows编辑器
  • UNITY_STANDALONE: 独立的平台(Mac,Windows或Linux)
  • UNITY_STANDALONE_WIN: Windows平台
  • UNITY_STANDALONE_OSX: Mac OS
  • UNITY_STANDALONE_LINUX: Linux
  • UNITY_ANDROID: 安卓
  • UNITY_IOS: iOS平台
  • UNITY_WEBGL: WEBGL平台

3.自定义宏

除了Unity给定的宏之外,我们也可以自己定义宏
在Project Settings / Player /Other Settings /Scripting Define Symbols中添加
现在添加一个 “DEV” 宏用于区别是否是开发版本
如果有多个宏,用 ; 分割
在这里插入图片描述
然后我们就可以在代码里使用 “DEV” 宏

在这里插入图片描述

4.代码设置宏

    public void SetSymbols(){//获取当前是哪个平台BuildTargetGroup buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;//获得当前平台已有的宏定义var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup);//另外加一个SDK宏symbols = symbols + ";SDK";//重新设置宏PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, symbols);}
http://www.lryc.cn/news/323843.html

相关文章:

  • 算法 之 排序算法
  • Prism:打造WPF项目的MVVM之选,简化开发流程、提高可维护性
  • Springboot+vue的四川美食分享网站+数据库+报告+免费远程调试
  • 温湿度项目V1.0——原理图设计
  • H5 与 App、网页之间的通信
  • 亚马逊云科技:企业如何开启生成式AI之旅?
  • AMPQ和rabbitMQ
  • 在存在代理的主机上,为docker容器配置代理
  • 备考ICA----Istio实验4---使用 Istio 进行金丝雀部署
  • LeetCode-热题100:39.组合总和
  • 演讲嘉宾公布 | 智能家居与会议系统专题论坛将于3月28日举办
  • Unity发布webgl之后打开PDF文件,不使用js,不和浏览器交互
  • Python之装饰器-无参装饰器
  • 音视频实战--音视频编码
  • 【黄金手指】windows操作系统环境下使用jar命令行解压和打包Springboot项目jar包
  • React【Day1】
  • MNN 执行推理(九)
  • 算法公式汇总
  • c语言管理课程信息系统
  • 大模型在天体物理学研究中的辅助作用与案例分析
  • 洛谷_P1873 [COCI 2011/2012 #5] EKO / 砍树_python写法
  • Android_NDK调试
  • 全量知识系统 概要设计(SmartChat回复)
  • 一、SpringBoot基础搭建
  • some/ip CAN CANFD
  • HTTP Header Fields
  • 基于FPGA的FFT图像滤波设计
  • WPF 立体Border
  • java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
  • 代码随想录(day8)——字符串