ThSchm

Untitled

Feb 23rd, 2021
451
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         int id = GUIUtility.GetControlID(FocusType.Passive);
  2.  
  3.         Vector3 delta = Vector3.zero;
  4.  
  5.         Event e = Event.current;
  6.         switch (e.GetTypeForControl(id))
  7.         {
  8.             case EventType.Layout:
  9.             {
  10.                 HandleUtility.AddControl(id, Vector2.Distance(e.mousePosition, HandleUtility.WorldToGUIPoint(point)));
  11.                 break;
  12.             }
  13.             case EventType.Repaint:
  14.             {
  15.                 /* visual Handle code here */
  16.                 break;
  17.             }
  18.             case EventType.MouseDown:
  19.             {
  20.                 if (HandleUtility.nearestControl == id)
  21.                 {
  22.                     GUIUtility.hotControl = id;
  23.                     e.Use();
  24.                 }
  25.                 break;
  26.             }
  27.             case EventType.MouseUp:
  28.             {
  29.                 if (GUIUtility.hotControl == id)
  30.                 {
  31.                     if (HandlesM.delta == Vector3.zero)
  32.                         onClick?.Invoke();
  33.  
  34.                     GUIUtility.hotControl = 0;
  35.                     e.Use();
  36.  
  37.                     HandlesM.delta = Vector3.zero;
  38.                 }
  39.                 break;
  40.             }
  41.             case EventType.MouseDrag:
  42.             {
  43.                 if (GUIUtility.hotControl == id)
  44.                 {
  45.                     /* drag specific code here */
  46.  
  47.                     HandlesM.delta = e.delta;
  48.                     GUI.changed = true;
  49.                     e.Use();
  50.                 }
  51.                 break;
  52.             }
  53.         }
  54.  
  55.         return delta;
RAW Paste Data