【Unity】宏定义Scripting Define Symbols

1.宏的用处

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

代码示例:

    //获取路径
    public string GtePath()
    {
        //不同平台,取不同的存储路径
        string strPath = string.Empty;
        
        //PC平台
    #if UNITY_STANDALONE_WIN
        strPath = Application.dataPath + "/../";
        //ios平台
	#elif UNITY_IPHONE
		strPath = Application.persistentDataPath+"/";
        //安卓平台
	#elif UNITY_ANDROID
		strPath = Application.persistentDataPath+"/";
	#endif
        return 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);
    }

相关推荐

  1. Unity和编辑器

    2024-03-21 18:24:02       24 阅读
  2. 定义控制printf

    2024-03-21 18:24:02       63 阅读
  3. 【C语言】(8)定义

    2024-03-21 18:24:02       56 阅读
  4. 汇编语言定义指令--.macro

    2024-03-21 18:24:02       30 阅读
  5. 常用的C语言定义

    2024-03-21 18:24:02       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 18:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 18:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 18:24:02       82 阅读
  4. Python语言-面向对象

    2024-03-21 18:24:02       91 阅读

热门阅读

  1. python之列表遍历

    2024-03-21 18:24:02       46 阅读
  2. leetcode-键盘行

    2024-03-21 18:24:02       50 阅读
  3. 【力扣】383.赎金信

    2024-03-21 18:24:02       33 阅读
  4. 月份选择,多选,数组去重

    2024-03-21 18:24:02       41 阅读
  5. C语言例3-30:位逻辑运算的应用例子

    2024-03-21 18:24:02       37 阅读
  6. 深度学习相关记录《一》

    2024-03-21 18:24:02       44 阅读
  7. 云备份与云存储有什么不同?有什么需要注意的

    2024-03-21 18:24:02       41 阅读
  8. ChatGPT都能做什么,有哪些场景?

    2024-03-21 18:24:02       44 阅读
  9. NFS(网络文件系统)介绍与实践

    2024-03-21 18:24:02       35 阅读
  10. 数据库迁移测试

    2024-03-21 18:24:02       41 阅读
  11. HJ3 明明的随机数

    2024-03-21 18:24:02       36 阅读