{
public float Restarttime =1f;
bool GameHasEnded = false;
public void EndGame ()
{

        if (GameHasEnded == false)
        {
            GameHasEnded = true;
            Debug.Log("GAMEOVER");
            Invoke("Restart", Restarttime);
        }

        void Restart ()
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }
    }
}

Good day.

Replace with this:

public void EndGame ()
     {
        
         if (GameHasEnded == false)
         {
             GameHasEnded = true;
             Debug.Log("GAMEOVER");
             StartCoroutine(Restart());
         }
 
         Ienumerator Restart ()
         {
             yield return new WaitForSeconds(Restarttime);
             SceneManager.LoadScene(SceneManager.GetActiveScene().name);
         }
     }

Bye!