GetKeyDown not always registering

Hi! I made a jump function to my FP controller but Input.GetKeyDown doesn’t work 100 of the time I press it. Any ideas? Thanks!

void Jump()
    yMove += jumpSpeed;

// Update is called once per frame
void Update()
    if (cc.isGrounded)
        yMove = 0;
        // if grounded and press space, jump
        if (Input.GetKeyDown(KeyCode.Space)) Jump();
    else yMove += gravity * Time.deltaTime;

    // other stuff

it seems like you cant move if its grounded, but can jump. when is the isGrounded false so that the if statement can turn to the else section ?