123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEditor;
- using UnityEditor.UIElements;
- using UnityEditor.Experimental.GraphView;
- using UnityEngine.UIElements;
- using GraphProcessor;
- using System.Linq;
- [NodeCustomEditor(typeof(ParameterNode))]
- public class ParameterNodeView : BaseNodeView
- {
- ParameterNode parameterNode;
- public override void Enable(bool fromInspector = false)
- {
- parameterNode = nodeTarget as ParameterNode;
- EnumField accessorSelector = new EnumField(parameterNode.accessor);
- accessorSelector.SetValueWithoutNotify(parameterNode.accessor);
- accessorSelector.RegisterValueChangedCallback(evt =>
- {
- parameterNode.accessor = (ParameterAccessor)evt.newValue;
- UpdatePort();
- controlsContainer.MarkDirtyRepaint();
- ForceUpdatePorts();
- });
-
- UpdatePort();
- controlsContainer.Add(accessorSelector);
-
- // Find and remove expand/collapse button
- titleContainer.Remove(titleContainer.Q("title-button-container"));
- // Remove Port from the #content
- topContainer.parent.Remove(topContainer);
- // Add Port to the #title
- titleContainer.Add(topContainer);
- parameterNode.onParameterChanged += UpdateView;
- UpdateView();
- }
- void UpdateView()
- {
- title = parameterNode.parameter?.name;
- }
-
- void UpdatePort()
- {
- if(parameterNode.accessor == ParameterAccessor.Set)
- {
- titleContainer.AddToClassList("input");
- }
- else
- {
- titleContainer.RemoveFromClassList("input");
- }
- }
- }
|