| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor.Experimental.GraphView;using UnityEditor.UIElements;using UnityEngine.UIElements;using GraphProcessor;using NodeGraphProcessor.Examples;public class ConditionalProcessorView : PinnedElementView{    ConditionalProcessor	processor;    BaseGraphView           graphView;    public ConditionalProcessorView() => title = "Conditional Processor";    protected override void Initialize(BaseGraphView graphView)    {        processor = new ConditionalProcessor(graphView.graph);        this.graphView = graphView;        graphView.computeOrderUpdated += processor.UpdateComputeOrder;        Button runButton = new Button(OnPlay) { name = "ActionButton", text = "Run" };        Button stepButton = new Button(OnStep) { name = "ActionButton", text = "Step" };        content.Add(runButton);        content.Add(stepButton);    }    void OnPlay() => processor.Run();    void OnStep()    {        BaseNodeView view;        if (processor.currentGraphExecution != null)        {            // Unhighlight the last executed node            view = graphView.nodeViews.Find(v => v.nodeTarget == processor.currentGraphExecution.Current);            view.UnHighlight();        }        processor.Step();        // Display debug infos, currentGraphExecution is modified in the Step() function above        if (processor.currentGraphExecution != null)        {            view = graphView.nodeViews.Find(v => v.nodeTarget == processor.currentGraphExecution.Current);            view.Highlight();        }    }}
 |