How to Destroy game object after a few seconds then instantiate an explosion upon death?


I`m new to Unity and programming and i have a problem I wrote a small crappy function where my game object dies after 3 seconds and instantiate an explosion. But it instantiates the explosion when I instantiate the game object that is supposed to die after 3 seconds.

What i want is to instantiate a torpedo, destroy it after a few seconds and instantiate an explosion.

I put the instantiation in start because if i put it in Update it instantiate a crap top of explosions for some reason when my torpedo is instantiated.

Does anyone know how to approach this ? Thank you ^-^

Here is my code :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RocketPlayer : MonoBehaviour

public Rigidbody rocketRb;

public GameObject explode;

public float speed;

public bool isDeadRocket;

void Start () 
	isDeadRocket = false;
	rocketRb.velocity = transform.forward * speed;

	if (isDeadRocket = true) {
		Instantiate (explode, transform.position, transform.rotation);


void Update () 

public void RocketDeath ()

	Destroy (gameObject, 3);
	isDeadRocket = true;




Wherever you use rocketdeath you can have a boolean after it that you can use in this class. So something like:

 if (object == null) {
     objectIsDestroyed == true;

In the class that uses RocketDeath and then use that boolean to instantiate the explosion at the death site.