Iniciar la rutina en un GameObject inactivo / desactivado
Tengo el siguiente código
void Start()
{
gameObject.SetActive(false);
StartCoroutine(Load());
}
IEnumerator Load()
{
yield return new WaitForSeconds(waitTime);
gameObject.SetActive(true);
}
Esto me da un error que dice:
@Coroutine no se pudo iniciar porque el objeto del juego 'NameOfObj' está inactivo!
Esto tiene sentido, ya que el objeto del juego se configuró para desactivarse antes de ejecutar el script. Aún así, ¿qué es lo que debo hacer entonces? Traté de movermegameObject.SetActive(false)
a la rutina, antes deWaitForSeconds()
. Hacer esto detuvo la carga del objeto del juego.
Desde mi entendimiento, cuando la líneagameObject.SetActive(false)
se ejecuta, el script deja de ejecutarse hasta que se reactiva el objeto del juego. Sin embargo, si este es el caso, ¿no sería imposible reactivar el objeto del juego (ya que el script está desactivado)?
Independientemente, ¿cómo retrasaría la carga de mi objeto de juego hasta 2-3 (o cualquier período de tiempo arbitrario) después de que el juego haya comenzado?