- Home /
GetButtonDown not registering?
Whenever my character is on the ground sometimes space doesn't make him jump. I'm making a movement script with a double jump.
using UnityEngine;
public class PlayerControls : MonoBehaviour
{
public float gravity;
public float jumpforce;
public float speed;
public CharacterController cc;
public float verticalvelocity;
private Vector3 velocity;
public int jumps = 0;
public int maxJumps = 2;
// Update is called once per frame
void Update()
{
Move();
if (jumps < maxJumps && Input.GetButtonDown("Jump"))
{
verticalvelocity = jumpforce;
jumps += 1;
}
}
void Move()
{
float Xmove = Input.GetAxisRaw("Horizontal");
float Zmove = Input.GetAxisRaw("Vertical");
Vector3 movehorizontal = transform.right * Xmove;
Vector3 movevertical = transform.forward * Zmove;
velocity = (movehorizontal + movevertical).normalized * speed * Time.deltaTime;
ApplyGravity();
cc.Move(velocity);
}
void ApplyGravity()
{
if (cc.isGrounded)
{
jumps = 0;
verticalvelocity = 0f;
} else
{
verticalvelocity -= gravity * Time.deltaTime;
}
velocity.y = verticalvelocity * Time.deltaTime;
}
}
GetButtonDown is only active 1st frame the button is pressed. $$anonymous$$y best suggestion would be to look at the condition, see when jumps is equal to max jumps. if that's working out right, try looking at the input manager.
Ohh and one last tip. you can make use of Debug.Log to check when the code in a if statement is being executed.
It turns out that getbuttondown does work/register everytime I press it! It's just my code that is glitched somehow.
That must mean that for some reason jumps < $$anonymous$$axJumps sometimes when you are grounded. Next I'd check the Bool cc.isGrounded as that is what resets jumps to 0. See when it is true and when it is false and of course check the value of jumps.
Try using "(Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.Space))"
It's better to use getbutton rather than get key. Getbutton uses Unity's input manager, which is good for letting users manage the key bindings of a game from Unity's launcher.
Your answer
Follow this Question
Related Questions
GetButtonDown / GetButtonUp usage c# 1 Answer
Xbox Controller and Input.GetButtonDown( ); 3 Answers
GetButtonDown Button-Names ..?! 1 Answer
Door close problem - Multiple door script 1 Answer
camera on getbuttondown 1 Answer