气泡组件和配置项
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Utility;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using Yarn.Unity;
|
||||
@@ -11,12 +12,13 @@ namespace AibisDream
|
||||
public class DialogController : Singleton<DialogController>
|
||||
{
|
||||
private const string BookManager = "BookManager";
|
||||
|
||||
private DialogueRunner dialogueRunner;
|
||||
|
||||
private DialogueRunner dialogueRunner;
|
||||
private VariableStorageBehaviour _variableStorage;
|
||||
|
||||
private Dictionary<string, Action<YarnOption[]>> commandMap = new();
|
||||
private readonly Dictionary<string, Action<YarnOption[]>> commandMap = new();
|
||||
|
||||
# region controller状态标识
|
||||
|
||||
private bool _isTalking;
|
||||
|
||||
@@ -39,13 +41,15 @@ namespace AibisDream
|
||||
}
|
||||
|
||||
// 对话框被阻塞时不能继续对话框交互
|
||||
public bool IsBlock { get; set; }
|
||||
public bool IsBlock { get; private set; }
|
||||
|
||||
public bool quickRunMode;
|
||||
|
||||
# endregion
|
||||
|
||||
public static UnityAction OnDialogueStart;
|
||||
public static UnityAction OnDialogueComplete;
|
||||
|
||||
public bool quickRunMode;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
dialogueRunner = GetComponentInChildren<DialogueRunner>();
|
||||
@@ -63,6 +67,7 @@ namespace AibisDream
|
||||
// 对话结束时切下一个SO
|
||||
dialogueRunner.onDialogueComplete.AddListener(() =>
|
||||
{
|
||||
DialogCanvasManager.Instance.SwitchDialogView(DialogViewType.Bubble);
|
||||
StartCoroutine(GameLoopManager.Instance.NextSceneSo());
|
||||
});
|
||||
}
|
||||
@@ -97,6 +102,7 @@ namespace AibisDream
|
||||
/// <param name="yarnProject">Yarn组</param>
|
||||
public void StartDialog(YarnProject yarnProject)
|
||||
{
|
||||
dialogueRunner.VariableStorage.Clear();
|
||||
dialogueRunner.SetProject(yarnProject);
|
||||
dialogueRunner.StartDialogue("Start");
|
||||
}
|
||||
@@ -135,7 +141,7 @@ namespace AibisDream
|
||||
{
|
||||
Debug.Log($"命令 {commandName} 已经存在,将被替换");
|
||||
}
|
||||
|
||||
|
||||
commandMap[commandName] = commandAction;
|
||||
}
|
||||
|
||||
@@ -210,11 +216,12 @@ namespace AibisDream
|
||||
{
|
||||
HideDialog();
|
||||
//yield return MainUIController.Instance.FadeInSync(duration);
|
||||
Camera.main.orthographicSize=5;
|
||||
Camera.main.transform.position=new Vector3(0,0,-10);
|
||||
Camera.main.orthographicSize = 5;
|
||||
Camera.main.transform.position = new Vector3(0, 0, -10);
|
||||
yield return SceneLoader.Instance.LoadSceneAsync(sceneName);
|
||||
//yield return new WaitForSeconds(1f);
|
||||
//yield return MainUIController.Instance.FadeOutSync(duration);
|
||||
DialogCanvasManager.Instance.SwitchDialogView(sceneName == "ClinicScene"
|
||||
? DialogViewType.Bubble
|
||||
: DialogViewType.OldBox);
|
||||
}
|
||||
|
||||
[YarnCommand("unload_scene")]
|
||||
@@ -226,7 +233,7 @@ namespace AibisDream
|
||||
[YarnCommand("hide_dialog")]
|
||||
public static void HideDialog()
|
||||
{
|
||||
DialogUiViewer.Instance.HideDialog();
|
||||
DialogCanvasManager.GetCurView().HideDialog();
|
||||
}
|
||||
|
||||
[YarnCommand("fade_in")]
|
||||
@@ -246,24 +253,25 @@ namespace AibisDream
|
||||
{
|
||||
return MainUIController.Instance.ShowObj(picName);
|
||||
}
|
||||
|
||||
|
||||
[YarnCommand("hide_obj")]
|
||||
public static IEnumerator HideObj()
|
||||
{
|
||||
return MainUIController.Instance.HideObj();
|
||||
}
|
||||
|
||||
[YarnCommand("move_to_fix")]
|
||||
public static IEnumerator Move_to_fix()
|
||||
public static IEnumerator MoveToFix()
|
||||
{
|
||||
bool isCompleted = false;
|
||||
Sequence s = DOTween.Sequence();
|
||||
s.Append(Camera.main.transform.DOMove(new UnityEngine.Vector3(6.8f, 0, -10), 2f))
|
||||
.OnComplete(() =>
|
||||
{
|
||||
// 动画完成后的反馈操作
|
||||
Debug.Log("Move_to_fix sequence completed.");
|
||||
isCompleted = true;
|
||||
});
|
||||
.OnComplete(() =>
|
||||
{
|
||||
// 动画完成后的反馈操作
|
||||
Debug.Log("Move_to_fix sequence completed.");
|
||||
isCompleted = true;
|
||||
});
|
||||
|
||||
// 等待动画完成
|
||||
yield return new WaitUntil(() => isCompleted);
|
||||
@@ -271,15 +279,22 @@ namespace AibisDream
|
||||
// 动画完成后的其他操作
|
||||
Debug.Log("Continuing after Move_to_fix sequence.");
|
||||
}
|
||||
|
||||
[YarnCommand("move_out_fix")]
|
||||
public static void Move_out_fix()
|
||||
public static void MoveOutFix()
|
||||
{
|
||||
Camera.main.transform.position=new UnityEngine.Vector3(6.8f, 0, -10);
|
||||
Camera.main.transform.position = new UnityEngine.Vector3(6.8f, 0, -10);
|
||||
Sequence s = DOTween.Sequence();
|
||||
//s.AppendInterval(0.5f);
|
||||
s.Append(Camera.main.transform.DOMove(new UnityEngine.Vector3(0, 0, -10), 2f));
|
||||
}
|
||||
|
||||
|
||||
[YarnCommand("switch_dialog_view")]
|
||||
public static void SwitchDialogView(string viewName)
|
||||
{
|
||||
DialogCanvasManager.Instance.SwitchDialogView(Enum.Parse<DialogViewType>(viewName));
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user