Jump to content
Sign in to follow this  
RodrigoVidal

Ayuda con la configuración del Dropdown del UI

Recommended Posts

Hola a todos, por más que lo he buscado no he podido ver ningún post sobre este tema y si creo que va a ser una tonteria pero no lo veo.

Estoy creando un menú de configuración para los gráficos, resolución de pantalla, etc, ya que el menu que sale por defecto en cuanto corres la aplicación me parecía un poco pobre.

El problema me lo encuentro cuando quiero configurar el componente Dropdown del canvas para que cuan el valor sea 0 haga una cosa, cuando sea 1, otra, etc.

No se si la mejor solución sera hacerlo con un switch dentro del evento OnValueChanged(). Como no lo he echo nunca, estoy un poco perdido.

Gracias de antemano a todo aquel que me pueda ayudar.

Share this post


Link to post
Share on other sites

Si utiliza el evento OnValueChanged, le asignas una función y trátalo con un switch. Cuando asignes un valor, saltará el evento y lo podrás tratar.

Share this post


Link to post
Share on other sites

iRobb, al final no he usado el switch pero me temo que tendré que utilizarlo y/o buscar otro método para poder hacer el panel de configuración de gráficos con una opción para personalizarla.

En el script base de los botones del menú hay que utilizar una nueva librería para poder acceder a los componentes del UI:

using UnityEngine.UI;

He creado una variable publica para asignar manualmente el Dropdown que voy a utilizar:

public Dropdown qualitySettingsDropdown;

En la función Start() he añadido un listener cuando el valor del Dropdown cambie y le asigno el valor de calidad que se encuentra en el Dropdown, que por defecto serà el más bajo:

qualitySettingsDropdown.onValueChanged.AddListener(delegate {
            SetQualityLevel();
        });
QualitySettings.SetQualityLevel(qualitySettingsDropdown.value);

No he tenido que usar el switch en este caso ya que los valores del array incluidos en la librería son los mismos valores que hay en el Dropdown. Entonces he creado esta función publica para poder asociarsela en el inspector:

public void SetQualityLevel() {

        QualitySettings.SetQualityLevel(qualitySettingsDropdown.value);
            
    }

El problema que tengo ahora es el querer hacer un tipo de configuración más avanzada por lo que creo que voy a necesitar la sentencia switch para poder acoger el caso 6 ya que del caso 0 al 5 ya vienen predeterminados.

Cual crees que es la mejor opción?

Edited by RodrigoVidal

Share this post


Link to post
Share on other sites

A ver, si sólo vas a tener 1-2 condiciones, el IF siempre es más rápido que el switch, eso ya lo sabes.

Si por contra, lo has de hacer bastante más complejo, porque intervienen otros factores, pues ya tira de Switch, o de bitflags, o lo que necesites...

Share this post


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

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...