private void ShowMenu(NodeValue currentNode, NodeValue nodeValue) { int menuType = (nodeValue != null) ? 1 : 0; GenericMenu menu = new GenericMenu(); if (menuType == 0) { GenericMenu.MenuFunction2 CallBack = (object userData) => { DataHandler dataHandler = new DataHandler(); dataHandler.AddNode((Node_Draw_Info_Item)userData, mousePosition, BehaviorDataController.Instance.CurrentOpenSubTree); }; List <Node_Draw_Info> nodeList = BehaviorNodeDrawInfoController.GetInstance().InfoList; for (int i = 0; i < nodeList.Count; ++i) { Node_Draw_Info draw_Info = nodeList[i]; for (int j = 0; j < draw_Info._nodeArr.Count; ++j) { KeyValuePair <string, Node_Draw_Info_Item> kv = draw_Info._nodeArr[j]; //string itemName = string.Format("Add Node/{0}", kv.Key); string itemName = string.Format("{0}", kv.Key); GenericMenuAddItem(menu, new GUIContent(itemName), CallBack, kv.Value); } } } else { if (null != currentNode && nodeValue.id == currentNode.id && (NODE_TYPE)nodeValue.NodeType < NODE_TYPE.CONDITION) { // 连线子节点 GenericMenuAddItem(menu, new GUIContent("Make Transition"), MakeTransition); menu.AddSeparator(""); } // 删除节点 GenericMenuAddItem(menu, new GUIContent("Delete Node"), DeleteNode); if (nodeValue.parentNodeID >= 0) { GenericMenuAddItem(menu, new GUIContent("Remove Parent"), RemoveParentNode); } } menu.ShowAsContext(); Event.current.Use(); }