| 12345678910111213141516171819202122232425262728293031323334 | using UnityEngine.UIElements;using UnityEditor.Experimental.GraphView;using UnityEngine;using GraphProcessor;using System;using UnityEditor;public class CustomContextMenuGraphView : BaseGraphView{	public CustomContextMenuGraphView(EditorWindow window) : base(window) {}	public override void BuildContextualMenu(ContextualMenuPopulateEvent evt)	{		evt.menu.AppendSeparator();		foreach (var nodeMenuItem in NodeProvider.GetNodeMenuEntries())		{			var mousePos = (evt.currentTarget as VisualElement).ChangeCoordinatesTo(contentViewContainer, evt.localMousePosition);			Vector2 nodePosition = mousePos;			evt.menu.AppendAction("Create/" + nodeMenuItem.path,				(e) => CreateNodeOfType(nodeMenuItem.type, nodePosition),				DropdownMenuAction.AlwaysEnabled			);		}		base.BuildContextualMenu(evt);	}	void CreateNodeOfType(Type type, Vector2 position)	{		RegisterCompleteObjectUndo("Added " + type + " node");		AddNode(BaseNode.CreateFromType(type, position));	}}
 |