【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);
    }

猜你喜欢

转载自blog.csdn.net/qq_30144243/article/details/136865649