using System.Collections; using AibisDream.FixSystem; using UnityEngine; using Yarn.Unity; namespace AibisDream.MiniGame.Language { /// /// 分析模式的 Yarn 命令接口 /// public static class AnalysisModeYarnCommand { private static AnalysisModeManager AnalysisModeManager => FixSystemCenter.SystemDic.Get(); /// /// 启动分析模式(使用 ScriptableObject 配置 - 推荐) /// <> /// 或 /// <> /// /// 关卡配置名称(Resources/AnalysisLevels/ 下的文件名) /// 完成时触发的对话节点(可选,会覆盖配置中的节点) [YarnCommand("start_analysis")] public static void StartAnalysis(string levelName, string completionNode = "") { if (AnalysisModeManager == null) { Debug.LogError("AnalysisModeManager 未找到!请确保场景中有 AnalysisModeManager 组件。"); return; } // 从 Resources 加载关卡配置 AnalysisModeData levelData = Resources.Load($"AnalysisLevels/{levelName}"); if (levelData == null) { Debug.LogError($"找不到关卡配置: Resources/AnalysisLevels/{levelName}.asset"); return; } // 启动分析模式 AnalysisModeManager.OpenView(levelData, completionNode); } /// /// 关闭分析模式 /// <> /// [YarnCommand("close_analysis")] public static void CloseAnalysis() { if (AnalysisModeManager == null) { Debug.LogWarning("AnalysisModeManager 未找到!"); return; } AnalysisModeManager.CloseView(); } } }