private void OnGUI() { if (nodeEditor == null) { GUIGenericMenu nodeMenu = new GUIGenericMenu(); nodeMenu.AddMenuItem("Make Transition", StartConnection); nodeMenu.AddMenuItem("Create Node", CreateNewNode); nodeMenu.AddMenuItem("Create/Items/", "Node"); nodeMenu.AddMenuItem("Delete Node", Delete); nodeEditor = new NodeEditor(); nodeEditor.EnableBoxSelect(); nodeEditor.EnableNodeSelect(); nodeEditor.EnableConnectorSelect(); nodeEditor.EnableNodeDrag(); nodeEditor.EnableNodeRightClick(); nodeEditor.EnableConnectorRightClick(); nodeEditor.EnableInputMode <ConnectorMakerMode>(2); connectorMode = new ConnectNodeInputMode(nodeEditor, 2); nodeEditor.EnableInputMode(connectorMode); Node node1 = new TextNode(Vector2.zero, "Test", null, nodeMenu); Node node2 = new TextNode(Vector2.one * 50f, "Test 2", null, nodeMenu); GUIGenericMenu connectMenu = new GUIGenericMenu(); connectMenu.AddMenuItem("Delete Connection", DeleteConnection); nodeEditor.AddNode(node1); nodeEditor.AddNode(node2); //nodeEditor.AddConnector(new Connector(connectMenu, node1, node2)); // nodeEditor.AddConnector(new Connector(connectMenu, node1, nodeEditor.MouseNode)); } if (nodeEditor.OnGUI(position.WithPosition(Vector2.zero))) { Repaint(); } }
public static Node MaterialNodeToUI(Material Mat, MaterialNode MatNode, NodeEditor Editor) { Node NewNode = new Node(MatNode.Name); NewNode.ID = MatNode.ID; NewNode.Source = MatNode; for (int i = 0; i < MatNode.Outputs.Count; i++) { NewNode.AddNodeValue(MaterialNodeValueToUI(Mat, MatNode.Outputs[i], Editor)); } for (int i = 0; i < MatNode.Inputs.Count; i++) { NewNode.AddNodeValue(MaterialNodeValueToUI(Mat, MatNode.Inputs[i], Editor)); } for (int i = 0; i < MatNode.Values.Count; i++) { NewNode.AddNodeValue(MaterialNodeValueToUI(Mat, MatNode.Values[i], Editor)); } Editor.AddNode(NewNode); return(NewNode); }
/// <summary> /// Fills the node editor with nodes that represent the scene data /// </summary> /// <param name="nodeContextMenu">The context menu to be given to each node</param> private void PopulateNodes(GUIGenericMenu nodeContextMenu) { SceneNodeCollection nodes = SerializedManager.SceneNodes; foreach (SceneNode node in nodes.SceneNodes) { node.ContextMenu = nodeContextMenu; node.IsEntryScene = SerializedManager.IsEntryScene(node.SceneId); if (node.SceneId == SceneManagerController.ANY_SCENE_ID) { node.SceneInfo = SerializedManager.TargetManager.AnyScene; } else { node.SceneInfo = SerializedManager.TargetManager.GetSceneById(node.SceneId); } NodeEditor.AddNode(node); } }
private void CreateNewNode(System.Object param) { Vector2 newPos = nodeEditor.GetMousePanAndZoom(); nodeEditor.AddNode(new TextNode(newPos, "New Node")); }