Player lives script help

So i got this script where if the player gets destroyed he returns to the game until all the lives runs out, basically like any other shmup game. I was following this Spaceshooter tutorial Skip to 19:40 he talks about how to make the player spawn. So i’m translating the tutorial to C# and my script does everything in the tutorial but when the player gets hit by the enemy the player does not spawn back, then in the gamecontroller script its say missing gameObject after player gets hit by the enemy. Here is my script for reference

	public Transform playerShip;
	public int playerLives = 2;
	public GameObject player;



void Start ()
	{

				if (player == null && playerLives >= 1) {
						playerLives--;
						Instantiate (playerShip, new Vector3 (0, 0, 0), Quaternion.Euler (0, 0, 180));
						player = GameObject.FindGameObjectWithTag ("Player");

				}
		}

If anybody can help that will be appreciated, i’m confused why it does not want to spawn the player again after an enemy defeats the player.

You put your logic in the Start function, which means the check will only happen once when the script becomes active. In the tutorial he puts it in the Update().

also why not just:

player = Instantiate (playerShip, new Vector3 (0, 0, 0), Quaternion.Euler (0, 0, 180)) as GameObject;

instead of using Find for no reason.