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