示例#1
0
 public void CalculateDirection()
 {
     float minDistance = Vector2.Distance(mousePosition, none);
     JoyDirection = StickDirection.NONE;
     if (Vector2.Distance(mousePosition, left) < minDistance)
     {
         minDistance = Vector2.Distance(mousePosition, left);
         JoyDirection = StickDirection.LEFT;
     }
     if (Vector2.Distance(mousePosition, right) < minDistance)
     {
         minDistance = Vector2.Distance(mousePosition, right);
         JoyDirection = StickDirection.RIGHT;
     }
     if (Vector2.Distance(mousePosition, top) < minDistance)
     {
         minDistance = Vector2.Distance(mousePosition, top);
         JoyDirection = StickDirection.UP;
     }
     if (Vector2.Distance(mousePosition, bottom) < minDistance)
     {
         minDistance = Vector2.Distance(mousePosition, bottom);
         JoyDirection = StickDirection.DOWN;
     }
     if (Vector2.Distance(mousePosition, topLeft) < minDistance)
     {
         minDistance = Vector2.Distance(mousePosition, topLeft);
         JoyDirection = StickDirection.UP_LEFT;
     }
     if (Vector2.Distance(mousePosition, topRight) < minDistance)
     {
         minDistance = Vector2.Distance(mousePosition, topRight);
         JoyDirection = StickDirection.UP_RIGHT;
     }
     if (Vector2.Distance(mousePosition, bottomLeft) < minDistance)
     {
         minDistance = Vector2.Distance(mousePosition, bottomLeft);
         JoyDirection = StickDirection.DOWN_LEFT;
     }
     if (Vector2.Distance(mousePosition, bottomRight) < minDistance)
     {
         minDistance = Vector2.Distance(mousePosition, bottomRight);
         JoyDirection = StickDirection.DOWN_RIGHT;
     }
 }
示例#2
0
    public void Update()
    {
        if (!Input.GetMouseButton(0))
        {
            startFollowing = false;
        }

        mousePosition = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y);
        if (Input.GetMouseButton(0) && joyStickRect.Contains(mousePosition) || startFollowing)
        {
            startFollowing = true;
            float joyX = Mathf.Clamp(mousePosition.x - joyStickRect.width / 2, touchPadRect.x, (touchPadRect.x + touchPadRect.width) - joyStickRect.width);
            float joyY = Mathf.Clamp(mousePosition.y - joyStickRect.height / 2, touchPadRect.y, (touchPadRect.y + touchPadRect.height) - joyStickRect.height);
            joyStickRect = new Rect(joyX, joyY, joyStickRect.width, joyStickRect.height);
            CalculateDirection();
        }
        else
        {
            joyStickRect = initialPosition;
            JoyDirection = StickDirection.NONE;
        }
    }