using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Yarn.Unity; namespace AibisDream { public class YarnOption { private DialogueOption dialogueOption; private Action onOptionSelected; public YarnOption(DialogueOption dialogueOption, Action onOptionSelected) { this.dialogueOption = dialogueOption; this.onOptionSelected = onOptionSelected; } /// /// 选项中的文字 /// public string Text { get { return dialogueOption.Line.TextWithoutCharacterName.Text; } } /// /// 选择该选项 /// public void SelectOption() { if (onOptionSelected == null) { Debug.LogWarning($"选项 {Text} 已经执行过了"); } else { onOptionSelected.Invoke(dialogueOption.DialogueOptionID); onOptionSelected = null; } } /// /// 生成选项 /// /// 原始选项 /// 选择 /// 包装选项 public static YarnOption[] GeneOptions(DialogueOption[] options, Action onOptionSelected) { YarnOption[] yarnOptions = new YarnOption[options.Length]; for (int i = 0; i < options.Length; i++) { yarnOptions[i] = new YarnOption(options[i], onOptionSelected); } return yarnOptions; } } }