Character Jumping Infinitely

My character in my game jumps, although he can jump forever and not just once. My code is
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move2 : MonoBehaviour

public LayerMask whatIsGround;
public Transform groundCheck;
public bool isGrounded;
public float jumpForce;
public float speed;
Rigidbody2D rb;

void Start ()
	rb = GetComponent <Rigidbody2D> ();

void Update () {
	if (Input.GetButtonDown ("Jump") && isGrounded) {
		rb.AddForce (Vector2.up * jumpForce, ForceMode2D.Impulse);
		isGrounded = false;

void FixedUpdate ()
	isGrounded = Physics2D.OverlapPoint (groundCheck.position, whatIsGround);
	float x = Input.GetAxis ("Horizontal");
	Vector3 move = new Vector3 (x * speed, rb.velocity.y, 0f);
	rb.velocity = move;


Looking at your code it appears that you aren’t setting the location of the groundCheck transform anywhere in your code. I’m guessing there is more going on than just beyond this.

My only thought is that isGrounded is being set to true by the statement in FixedUpdate because groundCheck is still overlapping as it isn’t moving with the player. Because of this as soon as the character starts jumping the FixedUpdate would set it isGrounded to true right after and allow infinite jumps. I can’t be certain without seeing the rest of the code, but that is where I’d recommend you look.