public static Vector2 Slider2D(int id, Vector2 position, DrawCapFunction drawCapFunction) { EventType type = Event.current.GetTypeForControl(id); switch(type) { case EventType.MouseDown: if (Event.current.button == 0 && HandleUtility.nearestControl == id && !Event.current.alt) { GUIUtility.keyboardControl = id; GUIUtility.hotControl = id; s_CurrentMousePosition = Event.current.mousePosition; s_DragStartScreenPosition = Event.current.mousePosition; Vector2 b = Handles.matrix.MultiplyPoint(position); s_DragScreenOffset = s_CurrentMousePosition - b; EditorGUIUtility.SetWantsMouseJumping(1); Event.current.Use(); } break; case EventType.MouseUp: if (GUIUtility.hotControl == id && (Event.current.button == 0 || Event.current.button == 2)) { GUIUtility.hotControl = 0; Event.current.Use(); EditorGUIUtility.SetWantsMouseJumping(0); } break; case EventType.MouseDrag: if (GUIUtility.hotControl == id) { s_CurrentMousePosition = Event.current.mousePosition; Vector2 center = position; position = Handles.inverseMatrix.MultiplyPoint(s_CurrentMousePosition - s_DragScreenOffset); if (!Mathf.Approximately((center - position).magnitude, 0f)) { GUI.changed = true; } Event.current.Use(); } break; case EventType.KeyDown: if (GUIUtility.hotControl == id && Event.current.keyCode == KeyCode.Escape) { position = Handles.inverseMatrix.MultiplyPoint(s_DragStartScreenPosition - s_DragScreenOffset); GUIUtility.hotControl = 0; GUI.changed = true; Event.current.Use(); } break; case EventType.Repaint: if(drawCapFunction != null) { drawCapFunction(id,position); } break; } return position; }
public static float ScaleValueHandle(float value, Vector3 position, Quaternion rotation, float size, DrawCapFunction capFunc, float snap) { int controlID = GUIUtility.GetControlID(s_ScaleValueHandleHash, FocusType.Keyboard); return(SliderScale.DoCenter(controlID, value, position, rotation, size, capFunc, snap)); }
internal static bool Button(int controlID, Vector3 position, Quaternion direction, float size, float pickSize, DrawCapFunction capFunc) { return UnityEditorInternal.Button.Do(controlID, position, direction, size, pickSize, capFunc); }
public static bool Button(Vector3 position, Quaternion direction, float size, float pickSize, DrawCapFunction capFunc) { return UnityEditorInternal.Button.Do(GUIUtility.GetControlID(s_ButtonHash, FocusType.Passive), position, direction, size, pickSize, capFunc); }
public static Vector3 FreeMoveHandle(Vector3 position, Quaternion rotation, float size, DrawCapFunction capFunc = null) { int id = GUIUtility.GetControlID(SnappedPointHash, FocusType.Keyboard); return(FreeMoveHandle(id, position, rotation, size, capFunc)); }
public static float ScaleValueHandle(float value, Vector3 position, Quaternion rotation, float size, DrawCapFunction capFunc, float snap) { return SliderScale.DoCenter(GUIUtility.GetControlID(s_ScaleValueHandleHash, FocusType.Keyboard), value, position, rotation, size, capFunc, snap); }
public static Vector3 FreeMoveHandle(Vector3 position, Quaternion rotation, float size, Vector3 snap, DrawCapFunction capFunc) { int id = GUIUtility.GetControlID(s_FreeMoveHandleHash, FocusType.Passive); return(UnityEditorInternal.FreeMove.Do(id, position, rotation, size, snap, capFunc)); }
public static Vector3 Slider2D(Vector3 handlePos, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, DrawCapFunction drawFunc, float snap, bool drawHelper) { int controlID = GUIUtility.GetControlID(s_Slider2DHash, FocusType.Keyboard); return(Slider2D(controlID, handlePos, new Vector3(0f, 0f, 0f), handleDir, slideDir1, slideDir2, handleSize, drawFunc, new Vector2(snap, snap), drawHelper)); }
public static Vector3 Slider2D(int id, Vector3 handlePos, Vector3 offset, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, DrawCapFunction drawFunc, Vector2 snap, [DefaultValue("false")] bool drawHelper) { return UnityEditorInternal.Slider2D.Do(id, handlePos, offset, handleDir, slideDir1, slideDir2, handleSize, drawFunc, snap, drawHelper); }
public static Vector3 Slider(Vector3 position, Vector3 direction, float size, DrawCapFunction drawFunc, float snap) { int id = GUIUtility.GetControlID(s_SliderHash, FocusType.Passive); return(UnityEditorInternal.Slider1D.Do(id, position, direction, size, drawFunc, snap)); }
public static Vector3 Slider2D(int id, Vector3 handlePos, Vector3 offset, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, DrawCapFunction drawFunc, Vector2 snap) { bool drawHelper = false; return Slider2D(id, handlePos, offset, handleDir, slideDir1, slideDir2, handleSize, drawFunc, snap, drawHelper); }
public static Vector3 Slider2D(Vector3 handlePos, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, DrawCapFunction drawFunc, Vector2 snap, [DefaultValue("false")] bool drawHelper) { return UnityEditorInternal.Slider2D.Do(GUIUtility.GetControlID(s_Slider2DHash, FocusType.Keyboard), handlePos, new Vector3(0f, 0f, 0f), handleDir, slideDir1, slideDir2, handleSize, drawFunc, snap, drawHelper); }
public static Vector3 Slider(Vector3 position, Vector3 direction, float size, DrawCapFunction drawFunc, float snap) { return Slider1D.Do(GUIUtility.GetControlID(s_SliderHash, FocusType.Keyboard), position, direction, size, drawFunc, snap); }
public static Vector3 Slider2D(int id, Vector3 handlePos, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, DrawCapFunction drawFunc, Vector2 snap, bool drawHelper) { return(Gizmos.Slider2D.Do(id, handlePos, new Vector3(0f, 0f, 0f), handleDir, slideDir1, slideDir2, handleSize, drawFunc, snap, drawHelper)); }
public static float ScaleValueHandle(float value, Vector3 position, Quaternion rotation, float size, DrawCapFunction capFunc, float snap) { int id = GUIUtility.GetControlID(s_ScaleValueHandleHash, FocusType.Passive); return(UnityEditorInternal.SliderScale.DoCenter(id, value, position, rotation, size, capFunc, snap)); }
public static Vector3 Slider2D(Vector3 handlePos, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, DrawCapFunction drawFunc, float snap) { bool drawHelper = false; return(Slider2D(handlePos, handleDir, slideDir1, slideDir2, handleSize, drawFunc, snap, drawHelper)); }
public static bool Button(Vector3 position, Quaternion direction, float size, float pickSize, DrawCapFunction capFunc) { int id = GUIUtility.GetControlID(s_ButtonHash, FocusType.Passive); return(UnityEditorInternal.Button.Do(id, position, direction, size, pickSize, capFunc)); }
public static Vector3 Slider(Vector3 position, Vector3 direction, float size, DrawCapFunction drawFunc, float snap) { int controlID = GUIUtility.GetControlID(s_SliderHash, FocusType.Keyboard); return(Slider1D.Do(controlID, position, direction, size, drawFunc, snap)); }
internal static bool Button(int controlID, Vector3 position, Quaternion direction, float size, float pickSize, DrawCapFunction capFunc) { return(UnityEditorInternal.Button.Do(controlID, position, direction, size, pickSize, capFunc)); }
public static Vector3 FreeMoveHandle(int id, Vector3 position, Quaternion rotation, float size, DrawCapFunction capFunc = null) { if (capFunc == null) { capFunc = PaintUtility.SquareDotCap; } Vector3 worldPosition = Handles.matrix.MultiplyPoint(position); Matrix4x4 origMatrix = Handles.matrix; switch (Event.current.GetTypeForControl(id)) { case EventType.layout: { Handles.matrix = MathConstants.identityMatrix; HandleUtility.AddControl(id, HandleUtility.DistanceToCircle(worldPosition, size * 1.2f)); Handles.matrix = origMatrix; break; } case EventType.mouseDown: { if (GUIUtility.hotControl == 0 && HandleUtility.nearestControl == id && Event.current.button == 0) { GUIUtility.hotControl = id; GUIUtility.keyboardControl = id; EditorGUIUtility.editingTextField = false; movePlane = Grid.CurrentGridPlane; movePlane = new CSGPlane(movePlane.normal, position); startMousePosition = Event.current.mousePosition; // currentMousePosition = startMousePosition; // startPosition = position; Event.current.Use(); EditorGUIUtility.SetWantsMouseJumping(1); } break; } case EventType.mouseDrag: { if (GUIUtility.hotControl == id) { if (snapFunction == null) { break; } position = snapFunction(startMousePosition, Event.current.mousePosition); if (Camera.current != null && Camera.current.orthographic) { position = movePlane.Project(position); } GUI.changed = true; Event.current.Use(); } break; } case EventType.mouseUp: { if (GUIUtility.hotControl == id && Event.current.button == 0) { GUIUtility.hotControl = 0; GUIUtility.keyboardControl = 0; EditorGUIUtility.editingTextField = false; Event.current.Use(); EditorGUIUtility.SetWantsMouseJumping(0); } break; } case EventType.repaint: { bool isSelected = (id == GUIUtility.keyboardControl) || (id == GUIUtility.hotControl); Color temp = Handles.color; if (isSelected) { Handles.color = Handles.selectedColor; // Why U not work? } else { Handles.color = Color.gray; } Handles.matrix = MathConstants.identityMatrix; capFunc(id, worldPosition, Camera.current.transform.rotation, size); Handles.matrix = origMatrix; if (isSelected) { Handles.color = temp; } break; } } return(position); }
public static Vector3 FreeMoveHandle(Vector3 position, Quaternion rotation, float size, Vector3 snap, DrawCapFunction capFunc) { return FreeMove.Do(GUIUtility.GetControlID(s_FreeMoveHandleHash, FocusType.Keyboard), position, rotation, size, snap, capFunc); }