using System.Collections; using System.Collections.Generic; using System.Linq; using Excel2Json; using Fort23.UTool; using UnityEngine; using Utility; public class DialogueManager : Singleton { private readonly EventSystemManager eventManager; private int currentDialogueID; private int currentNodeID; private int currentEventID; private List dialogueConfigs; private List dialogueOptionConfigs; public void CustomInit() { dialogueConfigs = ConfigComponent.Instance.GetAll().ToList(); dialogueOptionConfigs = ConfigComponent.Instance.GetAll().ToList(); } /// /// 开始对话 /// public void StartDialogue(int dialogueID, int eventID) { currentDialogueID = dialogueID; currentNodeID = 1; currentEventID = eventID; ShowDialogue(); } /// /// 显示当前对话 /// private void ShowDialogue() { //找到当前对话组 var dialogueConfig = dialogueConfigs.Find(n => n.ID == currentDialogueID && n.GroupId == currentNodeID); if (dialogueConfig.ID == 0) { EndDialogue(); return; } //todo 加载对话ui currentNodeID++; } /// /// 处理选项选择,跳转节点或触发逻辑。 /// /// 选项ID public void SelectOption(int optionID) { var option = dialogueOptionConfigs.Find(o => o.ID == optionID); if (option.ID == 0) { EndDialogue(); return; } if (option.DialogueConfigID > 0) { currentNodeID = option.DialogueConfigID; ShowDialogue(); } else { EndDialogue(); } } /// /// 结束对话 /// private void EndDialogue() { } }