Files
aibis-dream/Assets/Scripts/Dialog System/BaseYarnCommand.cs
T
2025-06-06 20:13:37 +08:00

132 lines
4.0 KiB
C#

using System;
using System.Collections;
using AibisDream.Framework;
using UnityEngine;
using Yarn.Unity;
namespace AibisDream
{
public static class BaseYarnCommand
{
#region 命令名
[YarnCommand("NextYarn")]
public static void NextYarn()
{
EnumEventSystem.Global.Send(EventEnum.NextYarn);
StorageSystem.Instance.ClearLocal();
DialogController.Instance.StartCoroutine(GameManager.Instance.NextSceneSo());
}
[YarnCommand("OpenEndMenu")]
public static void OpenEndMenu()
{
UIManager.Instance.ShowPanel<EndPanel>();
}
[Obsolete]
[YarnCommand("switch_tv")]
public static void SwitchTV(string picName)
{
Debug.Log("switch_tv 已废弃");
}
[Obsolete]
[YarnCommand("show_tv_scene")]
public static void ShowTVScene(float duration)
{
Debug.Log("show_tv_scene 已废弃");
}
[YarnCommand("load_scene")]
public static IEnumerator LoadScene(string sceneName, float duration = 1)
{
HideDialog();
yield return SceneLoader.Instance.LoadSceneAsync(sceneName);
}
[YarnCommand("unload_scene")]
public static IEnumerator UnloadScene(string sceneName)
{
yield return SceneLoader.Instance.UnloadSceneAsync();
}
[YarnCommand("hide_dialog")]
public static void HideDialog()
{
DialogCanvasManager.Instance.HideDialog();
}
[YarnCommand("fade_in")]
public static IEnumerator FadeIn(float duration = 1)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.FadeInAsync(duration);
}
[YarnCommand("fade_out")]
public static IEnumerator FadeOut(float duration = 1)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.FadeOutAsync(duration);
}
[YarnCommand("show_obj")]
public static IEnumerator ShowObj(string picName)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.ShowObj(picName);
}
[YarnCommand("hide_obj")]
public static IEnumerator HideObj()
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.HideObj();
}
[YarnCommand("show_full_screen")]
public static IEnumerator ShowFullScreen(string picName)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.ShowFullScreen(picName);
}
[YarnCommand("hide_full_screen")]
public static IEnumerator HideFullScreen()
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.HideFullScreen();
}
[YarnCommand("open_progress_window")]
public static IEnumerator OpenProgressWindow(string title, string description, float duration)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.OpenProgressWindow(title, description, duration);
}
[YarnCommand("open_warning_window")]
public static IEnumerator OpenWarningWindow(string description)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.OpenWarningWindow(description);
}
[YarnCommand("flash_red")]
public static IEnumerator FlashRed(float duration = 0.2f)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.FlashRed(duration);
}
[YarnCommand("switch_dialog_viewer")]
public static void SwitchDialogViewer(string viewerTypeStr)
{
var viewType = Enum.Parse<DialogViewType>(viewerTypeStr);
DialogCanvasManager.Instance.SwitchDialogView(viewType);
}
#endregion
}
}