Files
aibis-dream/Assets/Scripts/Dialog System/BaseYarnCommand.cs
T
dingyuntian 93012f5f7c feat(chapter): 重构章节系统为多出口图结构
- TalkSceneSO 引入 SceneExit 多出口列表与 displayOrder 排序
- GameManager.NextSceneSo 与 Yarn NextYarn 支持 exitName 跳转
- ChapterController 改用 GameManager 全局 SceneSO 列表
- SceneSO 资源迁移至 Archive/Demo/Fiction/Test 子目录
2026-04-25 20:13:29 +08:00

212 lines
6.7 KiB
C#

using System;
using System.Collections;
using AibisDream.Framework;
using AibisDream.UI;
using UnityEngine;
using Yarn.Unity;
namespace AibisDream
{
public static class BaseYarnCommand
{
#region 命令名
[YarnCommand("NextYarn")]
public static void NextYarn(string exitName = null)
{
EnumEventSystem.Global.Send(EventEnum.NextYarn);
StorageSystem.Instance.ClearLocal();
DialogController.Instance.StartCoroutine(GameManager.Instance.NextSceneSo(exitName));
}
[YarnCommand("OpenEndMenu")]
public static void OpenEndMenu()
{
UIManager.Instance.ShowPanel<EndPanel>();
}
[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()
{
DialogUIManager.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("fade_in_sync")]
public static void FadeInSync(float duration = 1)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
panel.FadeInSync(duration);
}
[YarnCommand("fade_out_sync")]
public static void FadeOutSync(float duration = 1)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
panel.FadeOutSync(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_sprite")]
public static IEnumerator ShowSprite(string picName, float duration = 1)
{
yield return SpriteShowcase.Instance.ShowObj(picName, duration);
}
[YarnCommand("hide_sprite")]
public static IEnumerator HideSprite(float duration = 1)
{
yield return SpriteShowcase.Instance.HideObj(duration);
}
[YarnCommand("showcase_fade_in")]
public static IEnumerator ShowcaseFadeIn(float duration = 1)
{
yield return SpriteShowcase.Instance.FadeInAsync(duration);
}
[YarnCommand("showcase_fade_out")]
public static IEnumerator ShowcaseFadeOut(float duration = 1)
{
yield return SpriteShowcase.Instance.FadeOutAsync(duration);
}
[YarnCommand("showcase_fade_in_sync")]
public static void ShowcaseFadeInSync(float duration = 1)
{
SpriteShowcase.Instance.FadeInSync(duration);
}
[YarnCommand("showcase_fade_out_sync")]
public static void ShowcaseFadeOutSync(float duration = 1)
{
SpriteShowcase.Instance.FadeOutSync(duration);
}
[YarnCommand("show_large_sprite")]
public static IEnumerator ShowLargeSprite(string picName, float duration = 1)
{
yield return SpriteShowcase.Instance.ShowLargeObj(picName, duration);
}
[YarnCommand("hide_large_sprite")]
public static IEnumerator HideLargeSprite(float duration = 1)
{
yield return SpriteShowcase.Instance.HideLargeObj(duration);
}
[YarnCommand("hide_all_sprites")]
public static IEnumerator HideAllSprites(float duration = 1)
{
yield return SpriteShowcase.Instance.HideAll(duration);
}
[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("show_sign_board")]
public static void ShowSignBoard(bool enable = true)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
panel.ShowSignBoard();
if (enable)
{
panel.EnableSignBoard();
}
}
[YarnCommand("enable_sign_board")]
public static void EnableSignBoard()
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
panel.EnableSignBoard();
}
[YarnCommand("close_sign_board")]
public static void CloseSignBoard()
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
panel.CloseSignBoard();
}
[YarnCommand("time_flows_on")]
public static IEnumerator TimeFlowsOn(string originState, string targetState)
{
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
return panel.TimeFlowsOn(originState, targetState);
}
#endregion
}
}