Invoke Method Not Working

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public CharacterController controller;

    public float speed = 12f;
    public float gravity = -9.81f;
    public float groundDistance = 0.4f;
    public float jumpHeight = 3f;

    public Transform groundCheck;

    public LayerMask groundMask;

    Vector3 velocity;

    bool isGrounded;
    private bool isJumping;
    
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        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 * speed * Time.deltaTime);

        if(Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
        }

        velocity.y += gravity * Time.deltaTime;

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

    private void jump()
    {
        if (!isJumping)
        {
            isJumping = true;
            invoke ("resetIsJumping", 1.5f);
        }
    }
    
    private void resetIsJumping()
    {
        isJumping = false;
    }
}

I’ve been reading a lot about invoke, how you shouldn’t destroy the game object, but I just couldn’t figure out how to make it work. Thanks for Answering, sincerely noobie.

Invoke needs to be capitalized, methods should be capitalized and variables should not be. Also you never call your jump method which is the real problem, most the code in FixedUpdate() should be in jump()

Sorry, I didn’t explain. The capital I for invoke worked, although, the thing I’m trying to do is NOT get a jump delay. I reset 1.5f to 0.2f so I hopefully could jump constantly and not have a delay. I also switched Input.GetKeyDown to Input.GetButtonDown("Jump). Thanks for answering, Ill show the changes I made:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public CharacterController controller;

public float speed = 12f;
public float gravity = -9.81f;
public float groundDistance = 0.4f;
public float jumpHeight = 3f;

public Transform groundCheck;

public LayerMask groundMask;

Vector3 velocity;

bool isGrounded;
private bool isJumping;

// Start is called before the first frame update
void Start()
{
    
}

// Update is called once per frame
void FixedUpdate()
{
    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 * speed * Time.deltaTime);

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

    velocity.y += gravity * Time.deltaTime;

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

private void jump()
{
    if (!isJumping)
    {
        isJumping = true;
        Invoke ("resetIsJumping", 1.5f);
    }
}

private void resetIsJumping()
{
    isJumping = false;
}

}