private void OnGUI() { // Initiation NodeEditor.checkInit(true); if (NodeEditor.InitiationError) { GUILayout.Label("Node Editor Initiation failed! Check console for more information!"); return; } AssureEditor(); AssureCanvas(); // Specify the Canvas rect in the EditorState mainEditorState.canvasRect = canvasWindowRect; // If you want to use GetRect: // Rect canvasRect = GUILayoutUtility.GetRect (600, 600); // if (Event.current.type != EventType.Layout) // mainEditorState.canvasRect = canvasRect; NodeEditorGUI.StartNodeGUI(); // Perform drawing with error-handling try { NodeEditor.DrawCanvas(mainNodeCanvas, mainEditorState); } catch (UnityException e) { // on exceptions in drawing flush the canvas to avoid locking the ui. NewNodeCanvas(); NodeEditor.ReInit(true); Debug.LogError("Unloaded Canvas due to an exception during the drawing phase!"); Debug.LogException(e); } // Draw Side Window sideWindowWidth = Math.Min(600, Math.Max(200, (int)(position.width / 5))); GUILayout.BeginArea(sideWindowRect, GUI.skin.box); DrawSideWindow(); GUILayout.EndArea(); NodeEditorGUI.EndNodeGUI(); }
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); Debug.LogError("Unloaded Canvas due to an exception during the drawing phase!"); Debug.LogException(e); } // Draw Interface editorInterface.DrawToolbarGUI(new Rect(0, 0, Screen.width, 0)); editorInterface.DrawModalPanel(); // End Node Editor GUI NodeEditorGUI.EndNodeGUI(); // END ROOT: End Overlay GUI and draw popups OverlayGUI.EndOverlayGUI(); }
private void OnGUI() { // Initiation NodeEditor.checkInit(true); if (NodeEditor.InitiationError) { GUILayout.Label("Node Editor Initiation failed! Check console for more information!"); return; } AssureSetup(); // Set various nested groups GUI.BeginGroup(rootRect, GUI.skin.box); // Begin Node Editor GUI and set canvas rect NodeEditorGUI.StartNodeGUI(false); canvasCache.editorState.canvasRect = new Rect(canvasRect.x, canvasRect.y + NodeEditorInterface.toolbarHeight, canvasRect.width, canvasRect.height - NodeEditorInterface.toolbarHeight); 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); Debug.LogError("Unloaded Canvas due to exception in Draw!"); Debug.LogException(e); } // Draw Interface editorInterface.DrawToolbarGUI(canvasRect); // End Node Editor GUI NodeEditorGUI.EndNodeGUI(); // End various nested groups GUI.EndGroup(); }
private void OnGUI() { /* * if (NodeEditor.curEditorState == null) * { * Debug.Log("OnGUI::TWWindow has no editor state " + NodeEditor.curEditorState+"actual editor state "+ canvasCache.editorState); * } * else if (NodeEditor.curEditorState.selectedNode == null) * { * Debug.Log("OnGUI::TWWindow has no Selected Node " + NodeEditor.curEditorState); * } * else * { * Debug.Log("OnGUI:: Selected Node " + NodeEditor.curEditorState.selectedNode); * } */ // Initiation NodeEditor.checkInit(true); if (NodeEditor.InitiationError) { GUILayout.Label("Node Editor Initiation failed! Check console for more information!"); return; } AssureEditor(); canvasCache.AssureCanvas(); // Specify the Canvas rect in the EditorState canvasCache.editorState.canvasRect = canvasWindowRect; // If you want to use GetRect: // Rect canvasRect = GUILayoutUtility.GetRect (600, 600); // if (Event.current.type != EventType.Layout) // mainEditorState.canvasRect = canvasRect; NodeEditorGUI.StartNodeGUI(); // Perform drawing with error-handling try { 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); Debug.LogError("Unloaded Canvas due to an exception during the drawing phase!"); Debug.LogException(e); } // Draw Side Window //sideWindowWidth = Math.Min(600, Math.Max(200, (int)(position.width / 5))); //GUILayout.BeginArea(sideWindowRect, GUI.skin.box); //DrawSideWindow(); //GUILayout.EndArea(); NodeEditorGUI.EndNodeGUI(); // if (Event.current.type == EventType.Repaint) // m_InspectorWindow.Repaint(); /* * //if (Event.current.type == EventType.Repaint) * { * if (mainEditorState.selectedNode != mainEditorState.wantselectedNode) * { * mainEditorState.selectedNode = mainEditorState.wantselectedNode; * NodeEditor.RepaintClients(); * Repaint(); * } * * } */ if (!m_Docked) { Docker.Dock(this, m_InspectorWindow, Docker.DockPosition.Right); Docker.Dock(this, m_NodeSelectionWindow, Docker.DockPosition.Left); m_Docked = true; } }
/// <summary> /// Called only if RequiresLocationGUI is true. /// Displays GUI filling in locationArgs with the information necessary to locate the import operation. /// Override along with RequiresLocationGUI for custom database access. /// Return true or false to perform or cancel the import operation. /// </summary> public virtual bool?ImportLocationArgsGUI(ref object[] locationArgs) { GUILayout.Label("Import canvas " + FormatIdentifier); GUILayout.BeginHorizontal(); //GUILayout.Label(RuntimeIOPath, GUILayout.ExpandWidth(true)); if (GUILayout.Button(string.IsNullOrEmpty(fileSelection)? "Select..." : fileSelection, GUILayout.ExpandWidth(true))) { // Find save files if (RuntimeIOPath == null) { return(false); } Debug.Log(RuntimeIOPath); DirectoryInfo dir = Directory.CreateDirectory(RuntimeIOPath); FileInfo[] taskdata = dir.GetFiles("*.taskdata"); FileInfo[] dialoguedata = dir.GetFiles("*.dialoguedata"); FileInfo[] sectordata = dir.GetFiles("*.sectordata"); currentMin = 0; files = new List <FileInfo>(); files.AddRange(taskdata); files.AddRange(dialoguedata); files.AddRange(sectordata); // Fill save file selection menu GenericMenu fileSelectionMenu = new GenericMenu(false); for (int i = currentMin; i < Mathf.Min(currentMin + limit, files.Count); i++) { int x = i; fileSelectionMenu.AddItem(new GUIContent(files[i].Name), false, () => { if (files[x].Name.Contains("taskdata")) { NodeEditorGUI.state = NodeEditorGUI.NodeEditorState.Mission; } if (files[x].Name.Contains("dialoguedata")) { NodeEditorGUI.state = NodeEditorGUI.NodeEditorState.Dialogue; } if (files[x].Name.Contains("sectordata")) { NodeEditorGUI.state = NodeEditorGUI.NodeEditorState.Sector; } fileSelection = Path.GetFileName(files[x].Name); NodeEditorGUI.Init(); }); } fileSelectionMenu.DropDown(fileSelectionMenuRect); fileSelectionMenuRect.height = 500; width = fileSelectionMenuRect.width; } if (Event.current.type == EventType.Repaint) { Rect popupPos = GUILayoutUtility.GetLastRect(); fileSelectionMenuRect = new Rect(popupPos.x + 2, popupPos.yMax + 2, popupPos.width - 4, 500); } else if (files != null && Event.current.delta != Vector2.zero && Event.current.isScrollWheel) { if (Event.current.delta.y > 0) { currentMin = Mathf.Min(currentMin + 3, files.Count - (Mathf.Min(files.Count, limit))); } else { currentMin = Mathf.Max(0, currentMin - 3); } GenericMenu fileSelectionMenu = new GenericMenu(false); for (int i = currentMin; i < Mathf.Min(currentMin + limit, files.Count); i++) { int x = i; fileSelectionMenu.AddItem(new GUIContent(files[i].Name), false, () => { if (files[x].Name.Contains("taskdata")) { NodeEditorGUI.state = NodeEditorGUI.NodeEditorState.Mission; } if (files[x].Name.Contains("dialoguedata")) { NodeEditorGUI.state = NodeEditorGUI.NodeEditorState.Dialogue; } if (files[x].Name.Contains("sectordata")) { NodeEditorGUI.state = NodeEditorGUI.NodeEditorState.Sector; } fileSelection = Path.GetFileName(files[x].Name); NodeEditorGUI.Init(); }); } fileSelectionMenu.DropDown(fileSelectionMenuRect, width); fileSelectionMenuRect.height = 500; width = fileSelectionMenuRect.width; } // Finish operation buttons GUILayout.BeginHorizontal(); if (GUILayout.Button("Cancel")) { return(false); } if (GUILayout.Button("Import")) { if (string.IsNullOrEmpty(fileSelection) || !File.Exists(RuntimeIOPath + "\\" + fileSelection)) { Debug.Log(RuntimeIOPath + "\\" + fileSelection); return(false); } fileSelection = Path.GetFileName(fileSelection); locationArgs = new object[] { RuntimeIOPath + "\\" + fileSelection }; return(true); } GUILayout.EndHorizontal(); return(null); }
private void RenderLinks(float scale, NodeEditorField highlightedField) { Vector2 mousePosition = Event.current.mousePosition; foreach (NodeEditorGUI node in _editableObjects) { if (node.HasOutput()) { bool highlighted = false; if (_dragMode == eDragType.NotDragging) { Vector2 toField = mousePosition - node.GetOutputField()._position; highlighted = toField.magnitude < kLinkIconWidth; SetNeedsRepaint(); } RenderLinkIcon(node.GetOutputField()._position, kOutputLinkIconColor, scale, highlighted); } foreach (NodeEditorField nodeInputField in node.GetInputFields()) { Color color; if (_dragMode == eDragType.Custom && (nodeInputField._type != _draggingNodeFieldFrom._type && !_draggingNodeFieldFrom._type.IsAssignableFrom(nodeInputField._type))) { color = kUnusableLinkIconColor; } else { color = kInputLinkIconColor; } bool highlighted = nodeInputField == highlightedField; if (_dragMode == eDragType.NotDragging) { Vector2 toField = mousePosition - nodeInputField._position; highlighted = toField.magnitude < kLinkIconWidth; SetNeedsRepaint(); } RenderStaticValueBox(nodeInputField, nodeInputField._position, kUnusableLinkIconColor, scale); RenderLinkIcon(nodeInputField._position, color, scale, highlighted); } } foreach (NodeEditorGUI node in _editableObjects) { foreach (NodeEditorField nodeInputField in node.GetInputFields()) { if (_dragMode != eDragType.Custom || _draggingNodeFieldTo != nodeInputField) { int linkedOutputNodeId = GetNodeInputFieldLinkNodeId(nodeInputField); if (linkedOutputNodeId != -1) { NodeEditorGUI outputNode = GetEditableObject(linkedOutputNodeId); if (outputNode != null && outputNode.HasOutput()) { RenderLink(outputNode.GetOutputField()._position, nodeInputField._position, _dragMode == eDragType.Custom ? Color.Lerp(kLinkLineColor, Color.black, 0.3f) : kLinkLineColor, scale); } } } } } if (_dragMode == eDragType.Custom) { //Instead of rendering current dragging link, render it to mouse position RenderLink(_draggingNodeFieldFrom._position, Event.current.mousePosition, kLinkLineColor, scale, true); } }
protected override void OnLeftMouseDown(Event inputEvent) { //Check for clicking on a link NodeEditorField clickedOnNodeFromField = null; NodeEditorField clickedOnNodeToField = null; for (int i = 0; i < _editableObjects.Count && clickedOnNodeFromField == null; i++) { NodeEditorGUI node = (NodeEditorGUI)_editableObjects[i]; if (node.GetOutputField() != null) { Vector2 toField = inputEvent.mousePosition - node.GetOutputField()._position; if (toField.magnitude < kLinkIconWidth * 0.5f) { clickedOnNodeFromField = node.GetOutputField(); break; } } foreach (NodeEditorField nodeInputField in node.GetInputFields()) { //If has an link going into it we can drag it away int linkNodeId = GetNodeInputFieldLinkNodeId(nodeInputField); if (linkNodeId != -1) { NodeEditorGUI linkedNode = GetEditableObject(linkNodeId); if (linkedNode != null) { Vector2 toField = inputEvent.mousePosition - nodeInputField._position; if (toField.magnitude < kLinkIconWidth) { clickedOnNodeFromField = linkedNode.GetOutputField(); clickedOnNodeToField = nodeInputField; break; } } } } } if (clickedOnNodeFromField != null) { _draggingNodeFieldFrom = clickedOnNodeFromField; _draggingNodeFieldTo = clickedOnNodeToField; _dragMode = eDragType.Custom; _dragPos = inputEvent.mousePosition; _dragAreaRect = new Rect(-1.0f, -1.0f, 0.0f, 0.0f); } //Normal object clicking else { _dragMode = eDragType.LeftClick; base.OnLeftMouseDown(inputEvent); } }
private void OnGUI() { if (wwwShader1 != null) { if (wwwShader1.isDone) { string pathShader = "Assets/TextureWang/Shaders/TextureOps.shader"; pathShader = pathShader.Replace("/", "" + Path.DirectorySeparatorChar); File.WriteAllBytes(pathShader, wwwShader1.bytes); AssetDatabase.ImportAsset(pathShader, ImportAssetOptions.ForceSynchronousImport); wwwShader1 = null; } Repaint(); Debug.Log("repaint 2"); } if (canvasCache.nodeCanvas.m_PreviewAnimation) { if (m_SW == null) { m_SW = Stopwatch.StartNew(); } m_AnimValue += (m_SW.ElapsedMilliseconds - m_LastTime) / 3000.0f; if (m_AnimValue < 0) { m_AnimValue = 0; } m_LastTime = m_SW.ElapsedMilliseconds; if (m_AnimValue > 1.0f) { m_AnimValue = 0.0f; } foreach (var x in canvasCache.nodeCanvas.nodes) { if (x is InputNodeAnimated) { var ina = x as InputNodeAnimated; ina.m_Value.Set(m_AnimValue); } } NodeEditor.RecalculateAll(canvasCache.nodeCanvas); Repaint(); Debug.Log("repaint 3"); } else { m_AnimValue = 0; } if (m_ReplaceNode != null && !OverlayGUI.HasPopupControl() && ms_InputInfo != null) { NodeEditorInputSystem.ShowContextMenu(ms_InputInfo); ms_InputInfo = null; } /* * if (NodeEditor.curEditorState == null) * { * Debug.Log("OnGUI::TWWindow has no editor state " + NodeEditor.curEditorState+"actual editor state "+ canvasCache.editorState); * } * else if (NodeEditor.curEditorState.selectedNode == null) * { * Debug.Log("OnGUI::TWWindow has no Selected Node " + NodeEditor.curEditorState); * } * else * { * Debug.Log("OnGUI:: Selected Node " + NodeEditor.curEditorState.selectedNode); * } */ // Initiation NodeEditor.checkInit(true); if (NodeEditor.InitiationError) { GUILayout.Label("Node Editor Initiation failed! Check console for more information!"); return; } AssureEditor(); canvasCache.AssureCanvas(); // Specify the Canvas rect in the EditorState canvasCache.editorState.canvasRect = canvasWindowRect; // If you want to use GetRect: // Rect canvasRect = GUILayoutUtility.GetRect (600, 600); // if (Event.current.type != EventType.Layout) // mainEditorState.canvasRect = canvasRect; NodeEditorGUI.StartNodeGUI(); // Perform drawing with error-handling try { if ((Event.current.keyCode >= KeyCode.A && Event.current.keyCode <= KeyCode.Z) || Event.current.keyCode == KeyCode.Escape) { if (Event.current.keyCode == KeyCode.Escape) { PopupMenu.m_NameFilter = ""; } else { int ascii = ((int)Event.current.keyCode - (int)KeyCode.A) + 65; string c = Char.ConvertFromUtf32(ascii); PopupMenu.m_NameFilter = c; } Debug.Log("m_NameFilter " + PopupMenu.m_NameFilter); OverlayGUI.currentPopup = null; NodeEditorInputInfo inputInfo = new NodeEditorInputInfo(canvasCache.editorState); NodeEditorInputSystem.ShowContextMenu(inputInfo); } NodeEditor.DrawCanvas(canvasCache.nodeCanvas, canvasCache.editorState); if (canvasCache.editorState.selectedNode != null) { if (canvasCache.editorState.selectedNode is TextureNode) { var tn = canvasCache.editorState.selectedNode as TextureNode; if (tn.m_RequestRepaint) { tn.m_RequestRepaint = false; Debug.Log("repaint 1"); Repaint(); m_InspectorWindow.Repaint(); } } } if (wwwShader1 != null) { GUI.Label(new Rect(100, 100, 500, 200), "One Time Shader Download in progress..."); } } catch (UnityException e) { // on exceptions in drawing flush the canvas to avoid locking the ui. canvasCache.NewNodeCanvas(); NodeEditor.ReInit(true); Debug.LogError("Unloaded Canvas due to an exception during the drawing phase!"); Debug.LogException(e); } if (m_PostOnLoadCanvasFixup != null) { // m_PostOnLoadCanvasFixup.PostOnLoadCanvasFixup(); m_PostOnLoadCanvasFixup = null; } // Draw Side Window //sideWindowWidth = Math.Min(600, Math.Max(200, (int)(position.width / 5))); //GUILayout.BeginArea(sideWindowRect, GUI.skin.box); //DrawSideWindow(); //GUILayout.EndArea(); NodeEditorGUI.EndNodeGUI(); // if (Event.current.type == EventType.Repaint) // m_InspectorWindow.Repaint(); /* * //if (Event.current.type == EventType.Repaint) * { * if (mainEditorState.selectedNode != mainEditorState.wantselectedNode) * { * mainEditorState.selectedNode = mainEditorState.wantselectedNode; * NodeEditor.RepaintClients(); * Repaint(); * } * * } */ if (!m_Docked && m_DockedRetry++ < 100 && m_InspectorWindow != null && m_NodeSelectionWindow != null) { try { m_DockedRetry++; Docker.Dock(this, m_InspectorWindow, Docker.DockPosition.Right); Docker.Dock(this, m_NodeSelectionWindow, Docker.DockPosition.Left); } catch (Exception ex) { Debug.LogError(" Dock failed " + ex); } m_Docked = true; } }
protected internal override void DrawConnections() { CheckNodeKnobMigration(); if (Event.current.type != EventType.Repaint) { return; } foreach (NodeOutput output in Outputs) { if (output == null) { continue; } Vector2 startPos = output.GetGUIKnob().center; Vector2 startDir = output.GetDirection(); foreach (NodeInput input in output.connections) { if (input != null) { if (input.typeID == "Float") { NodeEditorGUI.DrawConnection(startPos, startDir, input.GetGUIKnob().center, input.GetDirection(), Color.cyan); } else if (m_TexMode == TexMode.Greyscale) { NodeEditorGUI.DrawConnection(startPos, startDir, input.GetGUIKnob().center, input.GetDirection(), Color.red); } else if (m_TexMode != TexMode.Greyscale) { NodeEditorGUI.DrawConnection(startPos + new Vector2(0, -3), startDir, input.GetGUIKnob().center + new Vector2(0, -3), input.GetDirection(), Color.red); NodeEditorGUI.DrawConnection(startPos + new Vector2(0, 0), startDir, input.GetGUIKnob().center + new Vector2(0, 0), input.GetDirection(), Color.green); NodeEditorGUI.DrawConnection(startPos + new Vector2(0, 3), startDir, input.GetGUIKnob().center + new Vector2(0, 3), input.GetDirection(), Color.blue); } // EditorGUI.LabelField(new Rect(input.GetGUIKnob().center-new Vector2(50,20), new Vector2(200, 50)), input.name); } } } foreach (var input in Inputs) { if (input != null) { EditorGUI.LabelField(new Rect(input.GetGUIKnob().center - new Vector2(50, 20), new Vector2(200, 50)), input.name); } } }
private void OnGUI() { if (wwwShader1 != null) { if (wwwShader1.isDone) { string pathShader = "Assets/TextureWang/Shaders/TextureOps.shader"; pathShader = pathShader.Replace("/", "" + Path.DirectorySeparatorChar); File.WriteAllBytes(pathShader, wwwShader1.bytes); AssetDatabase.ImportAsset(pathShader, ImportAssetOptions.ForceSynchronousImport); wwwShader1 = null; } Repaint(); } if (m_ReplaceNode != null && !OverlayGUI.HasPopupControl() && ms_InputInfo != null) { NodeEditorInputSystem.ShowContextMenu(ms_InputInfo); ms_InputInfo = null; } /* * if (NodeEditor.curEditorState == null) * { * Debug.Log("OnGUI::TWWindow has no editor state " + NodeEditor.curEditorState+"actual editor state "+ canvasCache.editorState); * } * else if (NodeEditor.curEditorState.selectedNode == null) * { * Debug.Log("OnGUI::TWWindow has no Selected Node " + NodeEditor.curEditorState); * } * else * { * Debug.Log("OnGUI:: Selected Node " + NodeEditor.curEditorState.selectedNode); * } */ // Initiation NodeEditor.checkInit(true); if (NodeEditor.InitiationError) { GUILayout.Label("Node Editor Initiation failed! Check console for more information!"); return; } AssureEditor(); canvasCache.AssureCanvas(); // Specify the Canvas rect in the EditorState canvasCache.editorState.canvasRect = canvasWindowRect; // If you want to use GetRect: // Rect canvasRect = GUILayoutUtility.GetRect (600, 600); // if (Event.current.type != EventType.Layout) // mainEditorState.canvasRect = canvasRect; NodeEditorGUI.StartNodeGUI(); // Perform drawing with error-handling try { NodeEditor.DrawCanvas(canvasCache.nodeCanvas, canvasCache.editorState); if (canvasCache.editorState.selectedNode != null) { if (canvasCache.editorState.selectedNode is TextureNode) { var tn = canvasCache.editorState.selectedNode as TextureNode; if (tn.m_RequestRepaint) { tn.m_RequestRepaint = false; Repaint(); m_InspectorWindow.Repaint(); } } } if (wwwShader1 != null) { GUI.Label(new Rect(100, 100, 500, 200), "One Time Shader Download in progress..."); } } catch (UnityException e) { // on exceptions in drawing flush the canvas to avoid locking the ui. canvasCache.NewNodeCanvas(); NodeEditor.ReInit(true); Debug.LogError("Unloaded Canvas due to an exception during the drawing phase!"); Debug.LogException(e); } if (m_PostOnLoadCanvasFixup != null) { // m_PostOnLoadCanvasFixup.PostOnLoadCanvasFixup(); m_PostOnLoadCanvasFixup = null; } // Draw Side Window //sideWindowWidth = Math.Min(600, Math.Max(200, (int)(position.width / 5))); //GUILayout.BeginArea(sideWindowRect, GUI.skin.box); //DrawSideWindow(); //GUILayout.EndArea(); NodeEditorGUI.EndNodeGUI(); // if (Event.current.type == EventType.Repaint) // m_InspectorWindow.Repaint(); /* * //if (Event.current.type == EventType.Repaint) * { * if (mainEditorState.selectedNode != mainEditorState.wantselectedNode) * { * mainEditorState.selectedNode = mainEditorState.wantselectedNode; * NodeEditor.RepaintClients(); * Repaint(); * } * * } */ if (!m_Docked && m_DockedRetry++ < 100 && m_InspectorWindow != null && m_NodeSelectionWindow != null) { try { m_DockedRetry++; Docker.Dock(this, m_InspectorWindow, Docker.DockPosition.Right); Docker.Dock(this, m_NodeSelectionWindow, Docker.DockPosition.Left); } catch (Exception ex) { Debug.LogError(" Dock failed " + ex); } m_Docked = true; } }
private void OnGUI() { GUI.enabled = !ShowTutorial; NodeEditor.NoBuildShader = false; if (Event.current.type == EventType.MouseUp && Event.current.button == 0) { if (NodeEditor.AutoUpdate) { NodeEditor.RecalculateFlag = true; } } NodeEditor.checkInit(true); if (NodeEditor.InitiationError) { GUILayout.Label("Shadero Sprite Shader Editor Initiation failed! Check console for more information!"); return; } AssureEditor(); canvasCache.AssureCanvas(); canvasCache.editorState.canvasRect = canvasWindowRect; NodeEditorGUI.StartNodeGUI(); try { NodeEditor.DrawCanvas(canvasCache.nodeCanvas, canvasCache.editorState); } catch (UnityException e) { canvasCache.NewNodeCanvas(); NodeEditor.ReInit(true); Debug.LogError("Unloaded Canvas due to an exception during the drawing phase!"); Debug.LogException(e); } if (NodeEditor.NoBuildShader) { if (!NodeEditor.FlagIsSaved) { float x = canvasCache.editorState.panOffset.x + NodeEditor.BuildShaderPosX; float y = canvasCache.editorState.panOffset.y + NodeEditor.BuildShaderPosY; x /= canvasCache.editorState.zoom; y /= canvasCache.editorState.zoom; x -= 110; y -= 20; x += position.width * 0.4f; y += position.height * 0.4f; y += (90 / canvasCache.editorState.zoom); Texture2D preview = ResourceManager.LoadTexture("Help/arrow.png"); GUI.DrawTexture(new Rect(x, y, 128, 100), preview); bframecount += Time.fixedDeltaTime * 0.25f; if (bframecount > 1) { bframe++; bframecount = 0; } if (bframe >= 16) { bframe = 0; } preview = ResourceManager.LoadTexture("Help/help_light.png"); x -= 420; y -= 100; GUI.DrawTexture(new Rect(x - 24, y - 24, 410 + 48, 363 + 48), preview); if (bframe == 0) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_1.jpg"); } if (bframe == 1) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_2.jpg"); } if (bframe == 2) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_3.jpg"); } if (bframe == 3) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_4.jpg"); } if (bframe == 4) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_5.jpg"); } if (bframe == 5) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_6.jpg"); } if (bframe == 6) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_7.jpg"); } if (bframe == 7) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_8.jpg"); } if (bframe == 8) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_9.jpg"); } if (bframe == 9) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_10.jpg"); } if (bframe == 10) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_11.jpg"); } if (bframe == 11) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_12.jpg"); } if (bframe == 12) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_13.jpg"); } if (bframe >= 13) { preview = ResourceManager.LoadTexture("Help/Init_build_anm_14.jpg"); } GUI.DrawTexture(new Rect(x, y, 410, 363), preview); } } sideWindowWidth = Math.Min(205, Math.Max(205, (int)(position.width / 5))); GUILayout.BeginArea(sideWindowRect, GUI.skin.box); DrawSideWindow(); GUILayout.EndArea(); if (GUI.Button(new Rect(10, 75, 200, 20), new GUIContent("Help Tutorial"))) { ShowTutorial = !ShowTutorial; } if (ShowTutorial) { GUI.enabled = ShowTutorial; Texture2D preview = ResourceManager.LoadTexture("Help/tut_back.png"); float x = position.width; float y = position.height; float sx = 926; float sy = 490; Rect r = new Rect(x / 2 - sx / 2, y / 2 - sy / 2, sx, sy); GUI.DrawTexture(r, preview); float Bsize = 127; float Bpos = 60; float Bheight = 35; if (GUI.Button(new Rect((x / 2 - sx / 2) + 22, (y / 2 + sy / 2) - Bpos, Bsize - 5, Bheight), new GUIContent("1. Basic part 1"))) { ShowTutorialCurrent = 0; } if (GUI.Button(new Rect((x / 2 - sx / 2) + 22 + Bsize, (y / 2 + sy / 2) - Bpos, Bsize - 5, Bheight), new GUIContent("2. Basic part 2"))) { ShowTutorialCurrent = 1; } if (GUI.Button(new Rect((x / 2 - sx / 2) + 22 + Bsize * 2, (y / 2 + sy / 2) - Bpos, Bsize - 5, Bheight), new GUIContent("3. The UV"))) { ShowTutorialCurrent = 2; } if (GUI.Button(new Rect((x / 2 - sx / 2) + 22 + Bsize * 3, (y / 2 + sy / 2) - Bpos, Bsize - 5, Bheight), new GUIContent("4. Use Shader"))) { ShowTutorialCurrent = 3; } if (GUI.Button(new Rect((x / 2 - sx / 2) + 22 + Bsize * 4, (y / 2 + sy / 2) - Bpos, Bsize - 5, Bheight), new GUIContent("5. Parameters"))) { ShowTutorialCurrent = 4; } if (GUI.Button(new Rect((x / 2 - sx / 2) + 22 + Bsize * 5, (y / 2 + sy / 2) - Bpos, Bsize - 5, Bheight), new GUIContent("6. HDR"))) { ShowTutorialCurrent = 5; } if (GUI.Button(new Rect((x / 2 - sx / 2) + 22 + Bsize * 6, (y / 2 + sy / 2) - Bpos, Bsize - 5, Bheight), new GUIContent("OK"))) { ShowTutorial = !ShowTutorial; } if (GUI.Button(new Rect(10, 75, 200, 20), new GUIContent("Help Tutorial"))) { ShowTutorial = !ShowTutorial; } if (ShowTutorialCurrent == 0) { preview = ResourceManager.LoadTexture("Help/tut_img1.jpg"); } if (ShowTutorialCurrent == 1) { preview = ResourceManager.LoadTexture("Help/tut_img2.jpg"); } if (ShowTutorialCurrent == 2) { preview = ResourceManager.LoadTexture("Help/tut_img3.jpg"); } if (ShowTutorialCurrent == 3) { preview = ResourceManager.LoadTexture("Help/tut_img4.jpg"); } if (ShowTutorialCurrent == 4) { preview = ResourceManager.LoadTexture("Help/tut_img5.jpg"); } if (ShowTutorialCurrent == 5) { preview = ResourceManager.LoadTexture("Help/tut_img6.jpg"); } r.x += 23; r.y += 53; r.width = 875; r.height = 372; GUI.DrawTexture(r, preview); } NodeEditorGUI.EndNodeGUI(); NodeEditor.NoBuildShaderContext = NodeEditor.NoBuildShader; }
public void DrawToolbarGUI(Rect rect) { rect.height = toolbarHeight; rect.width = 280f; if (!showModalPanel) { GUILayout.BeginArea(rect, NodeEditorGUI.toolbar); GUILayout.BeginHorizontal(); //float curToolbarHeight = 0; if (GUILayout.Button("New", NodeEditorGUI.toolbarButton, GUILayout.Width(50))) { AutoSave(); switch (NodeEditorGUI.state) { case NodeEditorGUI.NodeEditorState.Mission: NewNodeCanvas(typeof(QuestCanvas)); break; case NodeEditorGUI.NodeEditorState.Dialogue: NewNodeCanvas(typeof(DialogueCanvas)); break; case NodeEditorGUI.NodeEditorState.Sector: NewNodeCanvas(typeof(SectorCanvas)); break; } IOLocationArgs = null; } if (GUILayout.Button("Import", NodeEditorGUI.toolbarButton, GUILayout.Width(50))) { IOFormat = ImportExportManager.ParseFormat("XML"); if (IOFormat.RequiresLocationGUI) { // Try to auto save AutoSave(); ImportLocationGUI = IOFormat.ImportLocationArgsGUI; modalPanelContent = ImportCanvasGUI; showModalPanel = true; } else if (IOFormat.ImportLocationArgsSelection(out IOLocationArgs)) { canvasCache.SetCanvas(ImportExportManager.ImportCanvas(IOFormat, IOLocationArgs)); } } if (GUILayout.Button("Export", NodeEditorGUI.toolbarButton, GUILayout.Width(50))) { IOFormat = ImportExportManager.ParseFormat("XML"); if (IOFormat.RequiresLocationGUI) { ExportLocationGUI = IOFormat.ExportLocationArgsGUI; modalPanelContent = ExportCanvasGUI; showModalPanel = true; } else if (IOFormat.ExportLocationArgsSelection(canvasCache.nodeCanvas.saveName, out IOLocationArgs)) { ImportExportManager.ExportCanvas(canvasCache.nodeCanvas, IOFormat, IOLocationArgs); } } string buttonText = "Mission"; switch (NodeEditorGUI.state) { case NodeEditorGUI.NodeEditorState.Mission: buttonText = "Mission"; break; case NodeEditorGUI.NodeEditorState.Dialogue: buttonText = "Dialogue"; break; case NodeEditorGUI.NodeEditorState.Sector: buttonText = "Sector"; break; default: break; } if (GUILayout.Button(buttonText, NodeEditorGUI.toolbarButton, GUILayout.Width(50))) { NodeEditorGUI.state = (NodeEditorGUI.NodeEditorState)(((int)NodeEditorGUI.state + 1) % 3); switch (NodeEditorGUI.state) { case NodeEditorGUI.NodeEditorState.Mission: NewNodeCanvas(typeof(QuestCanvas)); break; case NodeEditorGUI.NodeEditorState.Dialogue: NewNodeCanvas(typeof(DialogueCanvas)); break; case NodeEditorGUI.NodeEditorState.Sector: NewNodeCanvas(typeof(SectorCanvas)); break; default: break; } NodeEditorGUI.Init(); } bool autoSave = GUILayout.Toggle(autoSaveEnabled, "Auto Save"); if (autoSave != autoSaveEnabled) { autoSaveEnabled = autoSave; PlayerPrefs.SetInt("NEAutoSave", autoSave ? 1 : 0); PlayerPrefs.Save(); } GUI.backgroundColor = Color.white; GUILayout.EndHorizontal(); GUILayout.EndArea(); if (Event.current.type == EventType.Repaint) { toolbarHeight = 20; } } }
private void OnGUI() { // Initiation NodeEditor.checkInit(true); if (NodeEditor.InitiationError || canvasCache == null) { GUILayout.Label("Node Editor Initiation failed! Check console for more information!"); return; } AssureEditor(); canvasCache.AssureCanvas(); // Specify the Canvas rect in the EditorState, currently disabled for dynamic sidebar resizing // canvasCache.editorState.canvasRect = canvasWindowRect; // If you want to use GetRect: // Rect canvasRect = GUILayoutUtility.GetRect (600, 600); // if (Event.current.type != EventType.Layout) // mainEditorState.canvasRect = canvasRect; NodeEditorGUI.StartNodeGUI("NodeEditorWindow", true); // Perform drawing with error-handling try { 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); Debug.LogError("Unloaded Canvas due to an exception during the drawing phase!"); Debug.LogException(e); } // Draw Toolbar DrawToolbarGUI(); // Show Side Window if (showSideWindow) { // Draw Side Window sideWindowWidth = Math.Min(600, Math.Max(200, (int)(position.width / 5))); GUILayout.BeginArea(sideWindowRect, GUI.skin.box); DrawSideWindow(); GUILayout.EndArea(); canvasCache.editorState.canvasRect = new Rect(0, toolbarHeight, position.width - sideWindowWidth, position.height); } else { canvasCache.editorState.canvasRect = new Rect(0, toolbarHeight, position.width, position.height); } if (showModalPanel) { BeginWindows(); modalWindowRect = GUILayout.Window(0, modalWindowRect, DoModalWindow, "Save to Scene"); EndWindows(); } NodeEditorGUI.EndNodeGUI(); }