void FixedUpdate()
    {
        float mouseXMovement = Input.GetAxis("Mouse X");
        float mouseYMovement = Input.GetAxis("Mouse Y");
        float tankMovement   = Input.GetAxis("Horizontal");
        float bodyMovement   = Input.GetAxis("Vertical");

        body.Turn(tankMovement);
        turret.Turn(mouseXMovement);
        MoveTank(bodyMovement);
        cannon.Turn(mouseYMovement);



        if (Input.GetButton("Fire1") && cannonTimer >= cannonFireRate && cannon.CanFire())
        {
            cannonTimer = 0f;
            cannon.Fire();
        }

        if (Input.GetButtonDown("Fire2") && gun.currentState != FireMode.Auto)
        {
            gun.Fire();
        }
        else if (Input.GetButton("Fire2") && !isGunShooting && gun.currentState == FireMode.Auto)
        {
            isGunShooting = true;
            gun.Auto();
        }
        else if (Input.GetButtonUp("Fire2") && isGunShooting && gun.currentState == FireMode.Auto)
        {
            isGunShooting = false;
            gun.StopFire();
        }

        if (Input.GetKeyDown(KeyCode.F))
        {
            gun.ChangeState();
            gun.StopFire();
            isGunShooting = false;
        }
    }