63 lines
2.1 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
|