/// <summary> /// Draws and enables the node editor /// </summary> /// <param name="e">User event</param> public void DoNodeEditor(Event e) { Rect _zoomrect = new Rect(new Vector2(0, 19), Window.position.size); Vector2 pivotscale = _zoomrect.size / 2; Graph.ZoomPivot = GUIScaleUtility.BeginScale(ref _zoomrect, pivotscale, Graph.Zoom, true, false); // Node drawing UnityEngine.Profiling.Profiler.BeginSample("MoonBehavior: Node Drawing"); if (Graph.Nodes.Count > 0 && (e.type == EventType.Layout || e.type == EventType.Repaint)) { DrawNodes(Graph.Nodes, _zoomrect); } UnityEngine.Profiling.Profiler.EndSample(); // Node interaction UnityEngine.Profiling.Profiler.BeginSample("MoonBehavior: Node events"); HandleNodeEvents(e, Graph); UnityEngine.Profiling.Profiler.EndSample(); if (ActiveOutput != null) { MoonGUI.DrawLine(ActiveOutput.GetPosition(), e.mousePosition, new Color(1, 1, 1, 0.6f)); } GUIScaleUtility.EndScale(); HandleAddNodes(e); HandleContext(); }
/// <summary> /// Custom Line drawing /// </summary> /// <param name="Start">Start point</param> /// <param name="End">End point</param> /// <param name="Target">Target point</param> public override void DrawLine(Vector2 Start, Vector2 End, NodeInput Target) { MoonGUI.DrawLine(Start, End, Color.white, new GUIContent(Target.Order.ToString(), "Order"), true); }
/// <summary> /// Draws a line for an Node input /// </summary> /// <param name="Start">Start position</param> /// <param name="End">End position</param> /// <param name="Target">Input target</param> public virtual void DrawLine(Vector2 Start, Vector2 End, NodeInput Target) { MoonGUI.DrawLine(Start, End, Color.white, true); }