Jumping doesn't always work?

Sometimes when I attempt to jump nothing happens? Here is the code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour {
private Rigidbody2D myrigidbody;
[SerializeField]
private float movementspeed = 10f;
[SerializeField]
private float jumpheigt = 10f;
private bool isGround;
private bool facing = true;
private float horizontal;
public Transform groundCheck;
public LayerMask whatIsGround;
public GameObject PanelLose;
public GameObject PanelWin;
void Start ()
{
myrigidbody = GetComponent ();
}
void FixedUpdate ()
{
horizontal = Input.GetAxis (“Horizontal”);
isGround = Physics2D.OverlapCircle (groundCheck.position, 0.2f, whatIsGround);
myrigidbody.velocity = new Vector2 (horizontal * movementspeed, myrigidbody.velocity.y);
if(Input.GetKeyDown(KeyCode.UpArrow) && isGround == true)
{
myrigidbody.AddForce (transform.up * jumpheigt, ForceMode2D.Impulse);
}
if (horizontal > 0 && !facing)
{
Flip ();
}
else if (horizontal < 0 && facing)
{
Flip ();
}
}
private void Flip ()
{
facing = !facing;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;

Hello, thats because you are using the fixedupdate, you should not be catching inputs in the fixedupdatesince this is not getting called everyframe. teste just moving the input lines to the update and leave the fixedupdate for the physics.