public override async void MoveNext() { await Task.Delay(Mathf.CeilToInt(1000 * delay)); isRunning = false; var count = DynamicPorts.Count(); for (int i = 0; i < count; i++) { this.GetNextNode($"output {i}").Run(); } }
public NodePort GetForwardingPort() { NodePort selectorPort = GetOutputPort("selections"); int selectValue = GetInputValue <int>("select"); int numPorts = DynamicPorts.Count(); if (selectValue > numPorts || selectValue < 0) { return(null); } return(DynamicPorts.ElementAt(selectValue)); }
public override async void Run() { base.Run(); await Task.Delay(Mathf.CeilToInt(1000 * delay)); var events = new List <UnityEvent>(); var optionTransforms = new List <Transform>(); var count = DynamicPorts.Count(); for (int i = 0; i < count; i++) { var newEvent = new UnityEvent(); var cacheI = i; newEvent.AddListener(() => this.GetNextNode($"output {cacheI}").Run()); if (i < options.Count && options[i].endDialog) { newEvent.AddListener(() => SignalBusSingleton.Instance.Fire(new DialogOptionCancelRequest())); } events.Add(newEvent); } for (int i = 0; i < options.Count; i++) { optionTransforms.Add(options[i].transform); } if (haveExit) { var exitEvent = new UnityEvent(); exitEvent.AddListener(() => this.GetNextNode($"exit").Run()); SignalBusSingleton.Instance.Fire(new DialogOptionRequestSignal(dialogId, events, optionTransforms, exitEvent)); } else { SignalBusSingleton.Instance.Fire(new DialogOptionRequestSignal(dialogId, events, optionTransforms)); } isRunning = false; }