using UnityEngine; public class Storyline : MonoBehaviour { public Node currentNode; public void ApplyTransition(int count) { currentNode = currentNode.transitions[count].target; UpdateUi(); } public void UpdateUi() { var dialogueBox = GetComponent<DialogueBox>(); dialogueBox.SetActor(currentNode.actorName); dialogueBox.SetText(currentNode.dialogueText); dialogueBox.SetTransitions(currentNode.transitions); } public class Node { public readonly string actorName; public readonly string dialogueText; public readonly Transition[] transitions; public Node(string actor, string dialogue) { actorName = actor; dialogueText = dialogue; } public Node(string actor, string dialogue, Transition[] transitions) : this(actor, dialogue) { this.transitions = transitions; } } public class Transition { public readonly string transitionText; public readonly Node target; public Transition(string text, Node target) { transitionText = text; this.target = target; } } }