UnityEditor.RectHandles.HandleDirectionalCursor C# (CSharp) Method

HandleDirectionalCursor() private static method

private static HandleDirectionalCursor ( Vector3 handlePosition, Vector3 handlePlaneNormal, Vector3 direction ) : void
handlePosition Vector3
handlePlaneNormal Vector3
direction Vector3
return void
        private static void HandleDirectionalCursor(Vector3 handlePosition, Vector3 handlePlaneNormal, Vector3 direction)
        {
            Vector3 vector2;
            Vector2 mousePosition = Event.current.mousePosition;
            Plane plane = new Plane(handlePlaneNormal, handlePosition);
            if (RaycastGUIPointToWorldHit(mousePosition, plane, out vector2))
            {
                Vector2 vector3 = WorldToScreenSpaceDir(vector2, direction);
                Rect position = new Rect(mousePosition.x - 100f, mousePosition.y - 100f, 200f, 200f);
                EditorGUIUtility.AddCursorRect(position, GetScaleCursor(vector3));
            }
        }

Usage Example

Example #1
0
        internal static Vector3 SideSlider(int id, Vector3 position, Vector3 sideVector, Vector3 direction, float size, Handles.DrawCapFunction drawFunc, float snap, float bias)
        {
            Event   current    = Event.current;
            Vector3 normalized = Vector3.Cross(sideVector, direction).normalized;
            Vector3 vector     = Handles.Slider2D(id, position, normalized, direction, sideVector, 0f, drawFunc, Vector2.one * snap);

            vector = position + Vector3.Project(vector - position, direction);
            EventType type = current.type;

            if (type != EventType.Repaint)
            {
                if (type != EventType.Layout)
                {
                    if (type == EventType.MouseMove)
                    {
                        RectHandles.DetectCursorChange(id);
                    }
                }
                else
                {
                    Vector3 normalized2 = sideVector.normalized;
                    HandleUtility.AddControl(id, HandleUtility.DistanceToLine(position + sideVector * 0.5f - normalized2 * size * 2f, position - sideVector * 0.5f + normalized2 * size * 2f) - bias);
                }
            }
            else if ((HandleUtility.nearestControl == id && GUIUtility.hotControl == 0) || GUIUtility.hotControl == id)
            {
                RectHandles.HandleDirectionalCursor(position, normalized, direction);
            }
            return(vector);
        }
All Usage Examples Of UnityEditor.RectHandles::HandleDirectionalCursor