UnityEditorInternal.Slider1D.Do C# (CSharp) Method

Do() static private method

static private Do ( int id, Vector3 position, Vector3 handleDirection, Vector3 slideDirection, float size, Handles capFunction, float snap ) : Vector3
id int
position Vector3
handleDirection Vector3
slideDirection Vector3
size float
capFunction UnityEditor.Handles
snap float
return Vector3
        internal static Vector3 Do(int id, Vector3 position, Vector3 handleDirection, Vector3 slideDirection, float size, Handles.CapFunction capFunction, float snap)
        {
            Event current = Event.current;
            switch (current.GetTypeForControl(id))
            {
                case EventType.MouseDown:
                    if ((((HandleUtility.nearestControl == id) && (current.button == 0)) || ((GUIUtility.keyboardControl == id) && (current.button == 2))) && (GUIUtility.hotControl == 0))
                    {
                        int num = id;
                        GUIUtility.keyboardControl = num;
                        GUIUtility.hotControl = num;
                        s_CurrentMousePosition = s_StartMousePosition = current.mousePosition;
                        s_StartPosition = position;
                        current.Use();
                        EditorGUIUtility.SetWantsMouseJumping(1);
                    }
                    return position;

                case EventType.MouseUp:
                    if ((GUIUtility.hotControl == id) && ((current.button == 0) || (current.button == 2)))
                    {
                        GUIUtility.hotControl = 0;
                        current.Use();
                        EditorGUIUtility.SetWantsMouseJumping(0);
                    }
                    return position;

                case EventType.MouseMove:
                case EventType.KeyDown:
                case EventType.KeyUp:
                case EventType.ScrollWheel:
                    return position;

                case EventType.MouseDrag:
                    if (GUIUtility.hotControl == id)
                    {
                        s_CurrentMousePosition += current.delta;
                        float num2 = Handles.SnapValue(HandleUtility.CalcLineTranslation(s_StartMousePosition, s_CurrentMousePosition, s_StartPosition, slideDirection), snap);
                        Vector3 vector = Handles.matrix.MultiplyVector(slideDirection);
                        Vector3 v = Handles.s_Matrix.MultiplyPoint(s_StartPosition) + ((Vector3) (vector * num2));
                        position = Handles.s_InverseMatrix.MultiplyPoint(v);
                        GUI.changed = true;
                        current.Use();
                    }
                    return position;

                case EventType.Repaint:
                {
                    Color white = Color.white;
                    if ((id == GUIUtility.keyboardControl) && GUI.enabled)
                    {
                        white = Handles.color;
                        Handles.color = Handles.selectedColor;
                    }
                    capFunction(id, position, Quaternion.LookRotation(handleDirection), size, EventType.Repaint);
                    if (id == GUIUtility.keyboardControl)
                    {
                        Handles.color = white;
                    }
                    return position;
                }
                case EventType.Layout:
                    if (capFunction == null)
                    {
                        HandleUtility.AddControl(id, HandleUtility.DistanceToCircle(position, size * 0.2f));
                        return position;
                    }
                    capFunction(id, position, Quaternion.LookRotation(handleDirection), size, EventType.Layout);
                    return position;
            }
            return position;
        }

Same methods

Slider1D::Do ( int id, Vector3 position, Vector3 direction, float size, Handles capFunction, float snap ) : Vector3

Usage Example

Example #1
0
 internal static Vector3 Do(int id, Vector3 position, Vector3 direction, float size, Handles.DrawCapFunction drawFunc, float snap)
 {
     return(Slider1D.Do(id, position, direction, direction, size, drawFunc, snap));
 }
All Usage Examples Of UnityEditorInternal.Slider1D::Do