예제 #1
0
 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();
 }