private void DrawTransitions() { Handles.BeginGUI(); foreach (LZFighterStateTransition t in GetCurrentTransitions()) { StateMachineNode source = machine[t.source]; StateMachineNode target = machine[t.target]; Vector2 startP = source.nodeRect.center; Vector2 endP = target.nodeRect.center; Vector2 dir = endP - startP; Vector2 rotatedDir = dir.normalized.Rotated(90); startP += rotatedDir * 7; endP += rotatedDir * 7; if (selectedTransitions.Contains(t) && selectedType == SELECTED_TYPE.TRANSITION) { Handles.color = Color.cyan; } else { Handles.color = Color.white; } Handles.DrawLine(startP, endP); GUITools.DrawArrow(startP + dir / 2f + dir.normalized * 5f, dir.normalized); Handles.color = Color.white; } if (state == STATE.MAKING_TRANSITION) { Handles.DrawLine(transitionStart.nodeRect.position + transitionStart.nodeRect.size / 2f, Event.current.mousePosition); } Handles.EndGUI(); }