using UnityEditor;
///
/// 新手引导开关
///
public class GuideEditor : Editor
{
///
/// 新手引导宏
///
private const string MACRO_GUIDE = "GUIDE";
private const string GUIDE_TOOL = "Tools/新手引导";
[MenuItem(GUIDE_TOOL, true)]
public static bool GuideMenu()
{
BuildTargetGroup currentTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget);
string currentDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(currentTargetGroup);
Menu.SetChecked(GUIDE_TOOL, currentDefines.Contains(MACRO_GUIDE));
return true;
}
[MenuItem(GUIDE_TOOL)]
public static void SwitchGuide()
{
BuildTargetGroup currentTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget);
string currentDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(currentTargetGroup);
bool isCheck = !currentDefines.Contains(MACRO_GUIDE);
SetDefineSymbols(currentTargetGroup, MACRO_GUIDE, isCheck);
Menu.SetChecked(GUIDE_TOOL, isCheck);
}
private static void SetDefineSymbols(BuildTargetGroup buildTargetGroup, string define, bool enable)
{
string currentDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup);//获取目标平台下的宏命令
if (enable)
{
if (!currentDefines.Contains(define))
currentDefines += $";{define}";
}
else
currentDefines = currentDefines.Replace(define, string.Empty);
PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, currentDefines);
}
}