| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using UnityEditor.UIElements;using UnityEditor.Experimental.GraphView;using UnityEngine.UIElements;using GraphProcessor;using NodeGraphProcessor.Examples;[NodeCustomEditor(typeof(Comparison))]public class ComparisonView : BaseNodeView{	public override void Enable()	{		Comparison comparisonNode = nodeTarget as Comparison;		DrawDefaultInspector();				var inputA = new FloatField("In A") { value = comparisonNode.inA };		var inputB = new FloatField("In B") { value = comparisonNode.inB };		inputA.RegisterValueChangedCallback(v => {			owner.RegisterCompleteObjectUndo("Change InA value");			comparisonNode.inA = v.newValue;		});		inputB.RegisterValueChangedCallback(v => {			owner.RegisterCompleteObjectUndo("Change InB value");			comparisonNode.inB = v.newValue;		});		nodeTarget.onAfterEdgeConnected += UpdateVisibleFields;		nodeTarget.onAfterEdgeDisconnected += UpdateVisibleFields;		UpdateVisibleFields(null);		void UpdateVisibleFields(SerializableEdge _)		{			var inA = nodeTarget.GetPort(nameof(comparisonNode.inA), null);			var inB = nodeTarget.GetPort(nameof(comparisonNode.inB), null);			controlsContainer.Add(inputA);			controlsContainer.Add(inputB);			if (inA.GetEdges().Count > 0)				controlsContainer.Remove(inputA);			if (inB.GetEdges().Count > 0)				controlsContainer.Remove(inputB);		}	}}
 |