Problems with Invoke

I’m still pretty new to Unity, but if there’s an answer to this, I haven’t seen it yet.

I’m trying to use Invoke to give a slight delay to re-instatiate my player object after it dies, but no matter how I try I cannot get the Invoke method to actually execute.

Here’s the code:

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class GameController : MonoBehaviour

    public static int lives;
    public LifeCounter lifeCounter;
    private LevelManager levelManager;

    // Use this for initialization
    void Start(){
        lives = 2;

    void MakePlayer()    {     

    public void OneUp(){

    public void PlayerDie(){
        lives -= 1;
        lifeCounter = GameObject.Find("LifeCount").GetComponent<LifeCounter>();
        if (lives >= 0){
           Invoke("MakePlayer", 2);

        }else {
            //Game Over

            levelManager = GameObject.Find("LevelManager").GetComponent<LevelManager>();
            Cursor.visible = true;
            levelManager.LoadLevel(SceneManager.sceneCountInBuildSettings - 1);

If I use a regular call to re-instantiate the player, it works fine, and if I use and Invoke for the initial call it works fine too, but I can’t figure out how to make it do what I actually want.

Thanks in advance for any answers you can give me.

try to move the void MakePlayer under the invoke idk. it looks correct except from the number 2 in the Invoke thread. try 2f; instead of 2;