气泡组件和配置项
This commit is contained in:
@@ -1,13 +1,11 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using AibisDream.Utility;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class LineView : DialogueViewBase
|
||||
{
|
||||
private const string AutoNext = "auto_next";
|
||||
|
||||
// 进入指令选项模式
|
||||
private bool _isInCommand;
|
||||
|
||||
@@ -17,11 +15,11 @@ namespace AibisDream
|
||||
|
||||
if (_isInCommand)
|
||||
{
|
||||
DialogUiViewer.Instance.HideDialog();
|
||||
DialogCanvasManager.GetCurView().HideDialog();
|
||||
base.RunLine(dialogueLine, onDialogueLineFinished);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
HandleLineOutput(dialogueLine, onDialogueLineFinished);
|
||||
|
||||
if (DialogController.Instance.quickRunMode)
|
||||
@@ -35,32 +33,21 @@ namespace AibisDream
|
||||
// 对话系统正在交谈状态
|
||||
DialogController.Instance.IsTalking = true;
|
||||
|
||||
// 解析LocalizedLine
|
||||
if (dialogueLine.Metadata != null && dialogueLine.Metadata.Contains(AutoNext))
|
||||
{
|
||||
// 自动跳过
|
||||
DialogUiViewer.Instance.ShowAutoLine(dialogueLine.TextWithoutCharacterName.Text,
|
||||
dialogueLine.CharacterName, onDialogueLineFinished);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 需要玩家点击
|
||||
DialogUiViewer.Instance.ShowLine(dialogueLine.TextWithoutCharacterName.Text,
|
||||
dialogueLine.CharacterName, onDialogueLineFinished);
|
||||
}
|
||||
DialogCanvasManager.GetCurView().ShowLine(dialogueLine.TextWithoutCharacterName.Text,
|
||||
dialogueLine.GetCharacterVo(), onDialogueLineFinished, dialogueLine.IsAutoSkipLine());
|
||||
}
|
||||
|
||||
public override void RunOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected)
|
||||
{
|
||||
if (_isInCommand)
|
||||
{
|
||||
DialogUiViewer.Instance.HideDialog();
|
||||
DialogCanvasManager.GetCurView().HideDialog();
|
||||
base.RunOptions(dialogueOptions, onOptionSelected);
|
||||
return;
|
||||
}
|
||||
|
||||
DialogController.Instance.IsTalking = true;
|
||||
DialogUiViewer.Instance.ShowOptions(dialogueOptions, onOptionSelected);
|
||||
DialogCanvasManager.GetCurView().ShowOptions(dialogueOptions, onOptionSelected);
|
||||
}
|
||||
|
||||
public override void InterruptLine(LocalizedLine dialogueLine, Action onDialogueLineFinished)
|
||||
@@ -84,13 +71,11 @@ namespace AibisDream
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!DialogUiViewer.Instance.TrySkipLine())
|
||||
|
||||
if (!DialogCanvasManager.GetCurView().TrySkipLine())
|
||||
{
|
||||
DialogUiViewer.Instance.AfterEndLine();
|
||||
requestInterrupt.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user