| 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);
 
- 		}
 
- 	}
 
- }
 
 
  |