Creo que la solución presentada es un poco compleja, y me ha dado algunos errores en versiones posteriores de Unity 2019.3.0f por lo que les dejo mi solución, esta realmente solo tiene que ser agregada sin mas al Game Object que no queramos que sea destruido en la carga de escenas.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DontDestroyOnLoad : MonoBehaviour
{
void Awake()
{
// Primero creamos un Array que busque y guarde todos los objetos que contengan la misma tag
GameObject[] objectsWithSameTag = GameObject.FindGameObjectsWithTag(this.gameObject.tag);
// Si el largo de nuestro array es mayor que uno destruimos el objeto que intenta instanciarse,
if (objectsWithSameTag.Length > 1)
{
Destroy(this.gameObject);
}
// Si la condicion de arriba no se cumple llamamos a DontDestroyOnLoad
DontDestroyOnLoad(this.gameObject);
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.