Beispiel #1
0
    void HandleRotation()
    {
        Vector2 player    = transform.position;
        Vector2 mouse     = Mouse.WorldPos;
        Vector2 aimVector = (mouse - player).normalized;

        float angle = Mathf.Atan2(aimVector.y, aimVector.x);

        // Convert angle to degrees in range 0-360
        float degrees = angle * Mathf.Rad2Deg;

        if (degrees < 0)
        {
            degrees += 360;
        }

        AimAngle = degrees;
        //gunController.SetAimAngle(AimAngle);

        gunController.AimAt(mouse);

        if (Vector2.Dot(movementVector, aimVector) < 0)
        {
            bodyAnim.SetFloat("speed", -1);
        }
        else
        {
            bodyAnim.SetFloat("speed", 1);
        }

        bool flip = gunController.GunModel.IsFlipped;

        bodyRenderer.flipX = flip;

        bodyAnim.SetFloat("horizontal", Mathf.Abs(aimVector.x));
        bodyAnim.SetFloat("vertical", aimVector.y);
        bodyAnim.SetFloat("moving", shouldIdle ? 0.0f : 1.0f);

        handController.UpdateTexture(aimVector.y < 0, flip);
        //gunController.SetDrawOrder(aimVector.y < 0);
    }