Implementing sprint in Brackeys FPS Tutorial

public float walkSpeed = 12f;
public float gravity = -9.81f;
public float jumpHeight = 3f;

    public Transform groundCheck;
    public float groundDistance = 0.4f;
    public LayerMask groundMask;

    Vector3 velocity;
    bool isGrounded;

    // Update is called once per frame
    void Update()
    {
        isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);

        if(isGrounded && velocity.y < 0)

        {
            velocity.y = -2f;
        }

        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");


        Vector3 move = transform.right * x + transform.forward * z;

        controller.Move(move * walkSpeed * Time.deltaTime);
     
        if (Input.GetButtonDown("Jump") && isGrounded)
        {
            velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
        }

        if (Input.GetButtonDown("Fire3"))
        {
            walkSpeed*=2;
        }
       
        velocity.y += gravity * Time.deltaTime;

        controller.Move(velocity * Time.deltaTime);
    }
}

Hello Folks. here’s the deal I’m desperatelly trying to implement sprinting in this script, but no luck. It logically should be an if, else statement, but it just aint working. Any ideas? thanks a lot in advance.

@t_mind, certainly looks like it should work. Slip some debuggers in.

This one right before the first controller move:

Debug.Log( "walkSpeed before move = " + walkSpeed );
controller.Move(move * walkSpeed * Time.deltaTime);

This one in buttonDown:

if (Input.GetButtonDown("Fire3"))
{
    walkSpeed*=2;
    Debug.Log( "walkSpeed after fire = " + walkSpeed );
}

If those show you doubling your walkSpeed every time you click, then the problem is elsewhere.

If you don’t get the ‘after fire’ message, then you need to check your input settings.

your float variable at the top isnt needed if you want it to work just use the normal “speed” variable the walkspeed variable is unnesacarry because the program doesnt know its meant to be speed