Jump to content
UnitySpain
Sign in to follow this  
Guinneu

Problema programación toggles

Recommended Posts

Saludos,

Tengo con un problema con la programación de unos toggles de una interfaz. Son 4 toggles dentro de un toggle group. Cada toggle activa el panel de habilidades de un personaje en concreto. Funcionaban perfectamente hasta que estuve añadiendo la funcionalidad en la que al seleccionar un toggle cuando ya está activo, te centra la cámara al personaje correspondiente. Però esto lo hice dentro del Update(), y no en el método que se activa al seleccionar el toggle. Ahora pues, aunque se activan los toggles (En el inspector se activa el booleano “Is On”), ya no se activa el panel de habilidades.

Este es el código que se activa al seleccionar uno de los toggles (los demás siguen la misma estructura):

	public void BtnCamaleon (bool nuevoValor) {

		print ("Valor nuevoValor: " + nuevoValor);

		btn01.transform.SetSiblingIndex(1);
		btn02.transform.SetSiblingIndex(2);
		btn03.transform.SetSiblingIndex(3); 
		btn04.transform.SetSiblingIndex(4);
		btn05.transform.SetSiblingIndex(5);

		if (!camaleonDentroNave) { //Si el PJ está fuera de la nave, activa el panel normal
			
			panelCamaleon.SetActive(nuevoValor);

		}else{ //Si el PJ está dentro de la nave, activa el panel de nave
			
			if (naveActiva) panelCamaleonNave.SetActive(nuevoValor);
		}

	}

Cuando seleccionas el toggle, el print() saca por consola que el valor sigue siendo FALSE, por lo que deduzco que el código se ejecuta y que el problema está en que, aunque gráficamente se activa el toggle y en el inspector aparece el booleano Is On activado, no se porque motivo el valor se mantiene en FALSE, y esto lleva a que no se active el panel de habilidades.

He probado muchas cosas y no encuentro que puede ser. A alguien se le ocurre alguna solución? 

No soy muy experto aún, pero tengo la sensación de que se debe haber bugueado Unity o algo similar, ya que si se activa el toggle y se ejecuta el código, el print() deberia devolver valor TRUE sin dudarlo, me equivoco?

Muchísimas gracias de antemano! :12_slight_smile:

Share this post


Link to post
Share on other sites

tiene pinta de que el fallo está en la conexión visual (UI) vs Lógica (Script)... podrías subir una imagen del método que estás llamando (cuando te metés en el event trigger y buscás el evento), fijate que si estás llamando a un método publico desde el event trigger, por ej:

public void Test(bool testBool){} //no hace nada

... podés tener dos situaciones:

1 - Llamás al método, donde están los "dynamic bools" (para un trigger),basicamente le pasa el "isON"

2 - Llamás al método con los "static parameters", donde vos elegís el valor

Por supuesto te interesa pasarlo como 1, asegurate de eso, aunque si decís que antes te andaba bien supongo que lo estarías haciendo bien.

Saludos

Share this post


Link to post
Share on other sites

Saludos,

Aquí tienes la imagen. Como puedes ver, hasta ahora lo estaba pasando mediante "Static parameters", y me funcionaba bien hasta que no se porque, se estropeó. Ahora lo he cambiado seleccionando el método de "Dynamic bools" y ya me vuelve a funcionar!! 

Para poder entenderlo, tienes idea de porque antes me funcionaba y de repente dejó de funcionar con los "Static parameters"?

Muchas gracias por la ayuda! :12_slight_smile:

Share this post


Link to post
Share on other sites
7 hours ago, Guinneu said:

Para poder entenderlo, tienes idea de porque antes me funcionaba y de repente dejó de funcionar con los "Static parameters"?

La verdad que ni idea, si antes lo estabas pasando "mal" y te andaba la verdad no se por qué sería, pero si antes lo hubieras pasado "bien" y luego sin querer lo pasaste "mal" puede que haya sido por cambiar el nombre del método en algún momento, hayas tenido que elegir nuevamente de la lista, y ahí se te olvidó que era el de arriba (?), no se, lo importante es que ahora anda :12_slight_smile:

 

Share this post


Link to post
Share on other sites

puede que alguna variable la hayas metido dentro de un void y desde otro void sea incapaz de leerla. haz la depuracion y comprueba que pasos sigue el script.

Share this post


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

×
×
  • Create New...