Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int id = GUIUtility.GetControlID(FocusType.Passive);
- Vector3 delta = Vector3.zero;
- Event e = Event.current;
- switch (e.GetTypeForControl(id))
- {
- case EventType.Layout:
- {
- HandleUtility.AddControl(id, Vector2.Distance(e.mousePosition, HandleUtility.WorldToGUIPoint(point)));
- break;
- }
- case EventType.Repaint:
- {
- /* visual Handle code here */
- break;
- }
- case EventType.MouseDown:
- {
- if (HandleUtility.nearestControl == id)
- {
- GUIUtility.hotControl = id;
- e.Use();
- }
- break;
- }
- case EventType.MouseUp:
- {
- if (GUIUtility.hotControl == id)
- {
- if (HandlesM.delta == Vector3.zero)
- onClick?.Invoke();
- GUIUtility.hotControl = 0;
- e.Use();
- HandlesM.delta = Vector3.zero;
- }
- break;
- }
- case EventType.MouseDrag:
- {
- if (GUIUtility.hotControl == id)
- {
- /* drag specific code here */
- HandlesM.delta = e.delta;
- GUI.changed = true;
- e.Use();
- }
- break;
- }
- }
- return delta;
RAW Paste Data