void DrawNodeWindow(int id) { var node = GetNodeByID(id); if (node == null) { return; } EditorGUILayout.BeginVertical("box"); EditorGUILayout.BeginVertical("box"); node.FoldOutDes = EditorGUILayout.Foldout(node.FoldOutDes, "Name (Node Description)"); if (node.FoldOutDes) { node.Name = EditorGUILayout.TextField("", node.Name); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); node.Type = (NodeGraph.NODETYPE)EditorGUILayout.EnumPopup("Type", node.Type); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); node.FoldOutScriptName = EditorGUILayout.Foldout(node.FoldOutScriptName, "ScriptPath&Name"); if (node.FoldOutScriptName) { node.ScriptName = EditorGUILayout.TextField("", node.ScriptName); } if (node.ScriptName != "") { string fullPath = Application.dataPath + AI.SCRIPT_OUTPUTPATH + node.ScriptName + ".txt"; if (!File.Exists(fullPath)) { if (GUILayout.Button("Create Script")) { NodeScriptTemplate.NewEmptyScript(fullPath, node); } } else { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Delete Script")) { NodeScriptTemplate.DeleteScript(fullPath); } if (GUILayout.Button("Edit Script")) { System.Diagnostics.Process.Start(fullPath); } EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndVertical(); if (node.Parent != null) { if (node.Parent.Type == NodeGraph.NODETYPE.RANDOWSELECT) { node.Weight = EditorGUILayout.IntField("Weight *(Weight>0)", Mathf.Max(1, node.Weight)); } } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); node.ToolBarSelectIndex = GUILayout.Toolbar(node.ToolBarSelectIndex, NodeGraph.ToolBarNames); if (node.ToolBarSelectIndex == 0) { EditorGUILayout.BeginVertical("box"); EditorGUILayout.HelpBox("Export Tree (Input Export Tree File Name)", MessageType.Info); node.OutPutPath = EditorGUILayout.TextField("", node.OutPutPath); if (node.OutPutPath != "") { if (!File.Exists(Application.dataPath + AI.TREE_OUTPUTPATH + node.OutPutPath + ".bytes")) { if (GUILayout.Button("Export Tree")) { OnExportAllHandler(node); } } else { if (GUILayout.Button("Save Changes")) { OnExportAllHandler(node); } } } EditorGUILayout.EndVertical(); } else if (node.ToolBarSelectIndex == 1) { EditorGUILayout.BeginVertical("box"); EditorGUILayout.HelpBox("Set SubTree (Drag In Tree Data)", MessageType.Info); node.SubTreeAsset = EditorGUILayout.ObjectField("SubTree TextAsset", node.SubTreeAsset, typeof(TextAsset)) as TextAsset; if (node.SubTreeAsset != null && GUILayout.Button("Add SubTree")) { node.AddNode(NodeGraph.CreateNodeGraph(JsonMapper.ToObject <JsonData>(node.SubTreeAsset.text)), new Vector2(200, 0)); } EditorGUILayout.EndVertical(); } EditorGUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, 1000, 20)); }