static void DrawFSMlist(float width, float height) { ActionMenuTools tools = ActionMenuTools.GetInstance(); HashSet <NodeCanvas> clist = new HashSet <NodeCanvas>(tools.Loadedcanvases); NodeCanvas currentcanvas = NodeEditorInterface.GetInstance().canvasCache.nodeCanvas; GUILayout.Label(new GUIContent("Current load Canvas Cnt " + clist.Count)); if (GUILayout.Button("Reload FSM")) { LoadFSM(); } int i = 0; foreach (NodeCanvas loaded in clist) { if (loaded != null) { RTEditorGUI.Toggle(currentcanvas != null && currentcanvas == loaded, new GUIContent("[" + i + "]")); UnityEditor.EditorGUILayout.ObjectField(loaded, typeof(NodeCanvas), false); if (GUILayout.Button("load")) { NodeEditorInterface.GetInstance().canvasCache.LoadNodeCanvas(loaded, false); } i++; } } }
public static ActionMenuTools GetInstance() { if (mIns == null) { mIns = new ActionMenuTools(); mIns.TryLoadAsset(); } return(mIns); }
static void Register_NoteEditorMenuAtt(object att, object target) { NoteEditorMenuAttribute attribute = att as NoteEditorMenuAttribute; MethodInfo method = target as MethodInfo; if (attribute != null) { ActionMenuTools.GetInstance().AddMenuaction(attribute.menuname, attribute, method); } }
private void OnGUI() { // Initiation NodeEditor.checkInit(true); if (NodeEditor.InitiationError) { GUILayout.Label("Node Editor Initiation failed! Check console for more information!"); return; } AssureEditor(); AssureSetup(); // ROOT: Start Overlay GUI for popups OverlayGUI.StartOverlayGUI("NodeEditorWindow"); // Begin Node Editor GUI and set canvas rect NodeEditorGUI.StartNodeGUI(true); canvasCache.editorState.canvasRect = canvasWindowRect; try { // Perform drawing with error-handling NodeEditor.DrawCanvas(canvasCache.nodeCanvas, canvasCache.editorState); } catch (UnityException e) { // On exceptions in drawing flush the canvas to avoid locking the UI canvasCache.NewNodeCanvas(); NodeEditor.ReInit(true); LogMgr.LogError("Unloaded Canvas due to an exception during the drawing phase!"); LogMgr.LogException(e); } // Draw Interface NodeEditorInterface.GetInstance().DrawToolbarGUI(new Rect(0, 0, Screen.width, 0)); ActionMenuTools.GetInstance().DrawGamesMenu(Math.Min(400, Math.Max(200, (int)(position.width / 5))), position.height); NodeEditorInterface.GetInstance().DrawModalPanel(); // End Node Editor GUI NodeEditorGUI.EndNodeGUI(); // END ROOT: End Overlay GUI and draw popups OverlayGUI.EndOverlayGUI(); }
public void DrawToolbarGUI(Rect rect) { rect.height = toolbarHeight; GUILayout.BeginArea(rect, NodeEditorGUI.toolbar); GUILayout.BeginHorizontal(); float curToolbarHeight = 0; if (GUILayout.Button("File", NodeEditorGUI.toolbarDropdown, GUILayout.Width(50))) { GenericMenu menu = new GenericMenu(!Application.isPlaying); // New Canvas filled with canvas types NodeCanvasManager.FillCanvasTypeMenu(ref menu, NewNodeCanvas, "New Canvas/"); menu.AddSeparator(""); // Load / Save #if UNITY_EDITOR menu.AddItem(new GUIContent("Load Canvas"), false, LoadCanvas); menu.AddItem(new GUIContent("Reload Canvas"), false, ReloadCanvas); menu.AddSeparator(""); menu.AddItem(new GUIContent("Save Canvas"), false, SaveCanvas); menu.AddItem(new GUIContent("Save Canvas As"), false, SaveCanvasAs); menu.AddSeparator(""); foreach (var kv in ActionMenuTools.GetInstance().Getfolderdict()) { menu.AddItem(new GUIContent(kv.Key), false, kv.Value); } menu.AddSeparator(""); #endif // Import / Export filled with import/export types ImportExportManager.FillImportFormatMenu(ref menu, ImportCanvasCallback, "Import/"); ImportExportManager.FillExportFormatMenu(ref menu, ExportCanvasCallback, "Export/"); menu.AddSeparator(""); // Scene Saving string[] sceneSaves = NodeEditorSaveManager.GetSceneSaves(); if (sceneSaves.Length <= 0) // Display disabled item { menu.AddItem(new GUIContent("Load Canvas from Scene"), false, null); } else { foreach (string sceneSave in sceneSaves) // Display scene saves to load { menu.AddItem(new GUIContent("Load Canvas from Scene/" + sceneSave), false, LoadSceneCanvasCallback, sceneSave); } } menu.AddItem(new GUIContent("Save Canvas to Scene"), false, SaveSceneCanvasCallback); // Show dropdown menu.Show(new Vector2(5, toolbarHeight)); } curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUILayout.Space(10); GUILayout.FlexibleSpace(); GUILayout.Label(new GUIContent("" + canvasCache.nodeCanvas.saveName + " (" + (canvasCache.nodeCanvas.livesInScene ? "Scene Save" : "Asset Save") + ")", "Opened Canvas path: " + canvasCache.nodeCanvas.savePath), NodeEditorGUI.toolbarLabel); GUILayout.Label("Type: " + canvasCache.typeData.DisplayString, NodeEditorGUI.toolbarLabel); curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUI.backgroundColor = new Color(1, 0.3f, 0.3f, 1); if (GUILayout.Button("Force Re-init", NodeEditorGUI.toolbarButton, GUILayout.Width(100))) { NodeEditor.ReInit(true); canvasCache.nodeCanvas.Validate(); } #if !UNITY_EDITOR GUILayout.Space(5); if (GUILayout.Button("Quit", NodeEditorGUI.toolbarButton, GUILayout.Width(100))) { Application.Quit(); } #endif curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUI.backgroundColor = Color.white; GUILayout.EndHorizontal(); GUILayout.EndArea(); if (Event.current.type == EventType.Repaint) { toolbarHeight = curToolbarHeight; } }