Beispiel #1
0
 public virtual void OnPointerDown(PointerEventData e)
 {
     if (flags == CursorFlag.None)
     {
         return;
     }
     grip = flags;
     OnDrag(e);
 }
Beispiel #2
0
 public virtual void OnPointerUp(PointerEventData e)
 {
     grip = CursorFlag.None;
     if (!onUI)
     {
         flags = CursorFlag.None;
         Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
     }
 }
Beispiel #3
0
 public virtual void OnPointerExit(PointerEventData e)
 {
     onUI = false;
     if (grip != CursorFlag.None)
     {
         return;
     }
     flags = CursorFlag.None;
     Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
 }
Beispiel #4
0
    protected virtual void Update()
    {
        if (!onUI || grip != CursorFlag.None)
        {
            return;
        }

        var r = rect.rect;

        var v2 = rect.InverseTransformPoint(Input.mousePosition);

        if (v2.x <= r.x + edgeWidth)
        {
            flags |= CursorFlag.Left;
        }
        else
        {
            flags &= ~CursorFlag.Left;
        }

        if (v2.y <= r.y + edgeWidth)
        {
            flags |= CursorFlag.Bottom;
        }
        else
        {
            flags &= ~CursorFlag.Bottom;
        }

        if (v2.x >= r.x + r.width - edgeWidth)
        {
            flags |= CursorFlag.Right;
        }
        else
        {
            flags &= ~CursorFlag.Right;
        }

        if (v2.y >= r.y + r.height - edgeWidth)
        {
            flags |= CursorFlag.Top;
        }
        else
        {
            flags &= ~CursorFlag.Top;
        }


        if ((flags & CursorFlag.TL) == CursorFlag.TL || (flags & CursorFlag.BR) == CursorFlag.BR)
        {
            Cursor.SetCursor(NWSE_Cursor, new Vector2(16, 16), CursorMode.Auto);
        }
        else if ((flags & CursorFlag.TR) == CursorFlag.TR || (flags & CursorFlag.BL) == CursorFlag.BL)
        {
            Cursor.SetCursor(NESW_Cursor, new Vector2(16, 16), CursorMode.Auto);
        }
        else if ((flags & CursorFlag.Top) == CursorFlag.Top || (flags & CursorFlag.Bottom) == CursorFlag.Bottom)
        {
            Cursor.SetCursor(NS_Cursor, new Vector2(16, 16), CursorMode.Auto);
        }
        else if ((flags & CursorFlag.Left) == CursorFlag.Left || (flags & CursorFlag.Right) == CursorFlag.Right)
        {
            Cursor.SetCursor(WE_Cursor, new Vector2(16, 16), CursorMode.Auto);
        }
        else
        {
            Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
        }
    }
Beispiel #5
0
 protected virtual void OnEnable()
 {
     onUI  = false;
     flags = grip = CursorFlag.None;
 }