Files
aibis-dream/Assets/Scripts/MiniGame/HuoShan/AnalysisSystem/AnalysisModeYarnCommand.cs
T
2025-12-11 18:27:51 +08:00

63 lines
2.1 KiB
C#

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