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.
Answer by streeetwalker · Apr 07, 2020 at 03:45 PM
@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.
Answer by Markasabrt2 · Jan 02, 2021 at 10:18 AM
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
Your answer
Follow this Question
Related Questions
How to prevent Character Controller from falling of the edge? 6 Answers
choosing object and drop them from a machine 1 Answer
C# question 1 Answer
Tilt character with acceleration 1 Answer
Allowing player to glide/fall slowly 2 Answers