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