Instantiate crea una copia de un objeto durante la ejecución.

Instantiate básico

Instantiate(prefab);

Con posición y rotación

Instantiate(
    prefab,
    transform.position,
    transform.rotation
);

Guardar la instancia

GameObject nuevoObjeto = Instantiate(prefab);

Ejemplo de proyectil

[SerializeField]
private GameObject proyectil;

[SerializeField]
private Transform puntoDisparo;

void Disparar()
{
    Instantiate(
        proyectil,
        puntoDisparo.position,
        puntoDisparo.rotation
    );
}

Destroy

Destruye un objeto.

Destroy(gameObject);

Destruir después de un tiempo

Destroy(gameObject, 3f);