Jump to content
Sign in to follow this  
Hueggvo

desactivar un objeto al pasar de escena ??

Recommended Posts

Hola de nuevo, tengo una duda que en mi cabeza parecia más fácil xD. Tengo un objeto (Que no se destruye entre escenas) en una escena, el cual activa a otro objeto de la siguiente escena en determinado momento. He probado con 'GameObject.Find("Nombre_del_objeto").setActive(true)' pero no funcionó. También probé hacer un prefab de ese objeto y luego activarlo, pero tampoco. No se si tendrá que ver que el objeto sea un canvas, igualmente espero que me digais jeje.

Share this post


Link to post
Share on other sites

el comando es.   SetActive  tienes la s en minuscula.

GameObject.Find("Nombre_del_objeto").SetActive(true);

 

Share this post


Link to post
Share on other sites

ahora que me fijo creo que te falta tambíen el tag del objeto, que yo sepa o buscas en objeto por el tag o porque lo tienes metido en en un GameObject, prueba lo del tag que me imagino que sera eso ^^

GameObject.FindGameObjectWithTag("Nombre_del_objeto").SetActive(true);

 

Share this post


Link to post
Share on other sites
47 minutes ago, J4v1v1g2 said:

ahora que me fijo creo que te falta tambíen el tag del objeto, que yo sepa o buscas en objeto por el tag o porque lo tienes metido en en un GameObject, prueba lo del tag que me imagino que sera eso ^^


GameObject.FindGameObjectWithTag("Nombre_del_objeto").SetActive(true);

 

No, puedes buscar un GameObject por su nombre tal y como lo tiene puesto arriba.

@Hueggvo
El error seguramente está en que el objeto está desactivado, cuando el objecto está desactivado GameObject.Find no lo encuentra. Otra cosa, por rendimiento no se recomienda utilizarlo en Update, ya que estarías ejecutándolo en cada frame. En su lugar, debes crear una variable GameObject y ejecutar el Find en el Start o Awake, para guardar el gameobject en caché y poder despues desactivarlo o activarlo como quieras.

un pequeño ejemplo

GameObject Objeto;

void Awake () {
	Objeto = GameObject.Find("nombre del objeto");
}

void Update () {
	if(Pasa algo){
		Objeto.SetActive(true);
	}
	else{
		Objeto.SetActive(false);
	}
}

 

  • Like 2

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...