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