private void RunNode(EndNodeData nodeData) // Running end node { switch (nodeData.EndNodeType) // Different behaviour based on end node type { case EndNodeType.End: dialogueController.ShowDialogueUI(false); // Ending the dialogue, hiding UI break; case EndNodeType.Repeat: CheckNodeType(GetNodeByGuid(currentDialogueNodeData.NodeGuid)); // Repeating current dialogue node break; case EndNodeType.Goback: CheckNodeType(GetNodeByGuid(lastDialogueNodeData.NodeGuid)); // Repeating last dialogue node break; case EndNodeType.RetrunToStart: CheckNodeType(GetNextNode(currentDialogue.StartNodeDatas[0])); // Starting from the beginning break; default: throw new IndexOutOfRangeException(); } EndDialogue(); }
private EndNodeData SaveNodeData(EndNode _node) { EndNodeData nodeData = new EndNodeData() { NodeGuid = _node.NodeGuid, Position = _node.GetPosition().position, EndNodeType = _node.EndNodeType }; return(nodeData); }
private void RunNode(EndNodeData _nodeData) { switch (_nodeData.EndNodeType) { case EndNodeType.End: dialogueController.ShowDialogueUI(false); break; case EndNodeType.Repeat: CheckNodeType(GetNodeByGuid(currentDialogueNodeData.NodeGuid)); break; case EndNodeType.GoBack: CheckNodeType(GetNodeByGuid(lastDialogueNodeData.NodeGuid)); break; case EndNodeType.ReturnToStart: CheckNodeType(GetNextNode(dialogueContainer.StartNodeData[0])); break; default: break; } }