Implementación de la pantalla de configuración

Clase 28 de 29Curso de Creación de Interfaces de Usuario con Unity

Resumen

¿Cómo añadir un nuevo estado para la pantalla de opciones en Unity?

Para acercarnos a la implementación de una pantalla de opciones en nuestro juego, necesitamos comenzar con la creación de un nuevo estado en nuestro GameManager. Este nuevo estado será crucial para gestionar la transición adecuada a la pantalla de opciones.

  1. Agregar un nuevo estado:
    • En el archivo de GameManager, incluimos un nuevo GameState denominado Options.
    • Incorporamos una función pública para permitir el cambio a este nuevo estado con public void Options(), estableciendo el estado del juego como GameState.Options.
    • Llamamos a la función OnGameStateUpdated() para actualizar el estado del juego.
public enum GameState {
    Idle,
    Options,
    // otros estados
}

public void Options() {
    gameState = GameState.Options;
    OnGameStateUpdated();
}
  1. Conectar el botón de la pantalla de inicio:
    • Activamos todas las interfaces de usuario.
    • Modificamos el script de UIStartScreen para agregar una nueva función optionsButtonClick, que llama a gameManager.instance.Options().
public void OptionsButtonClick() {
    gameManager.instance.Options();
}
  1. Ajustar el OnClick del botón:
    • En Unity, configuramos el botón Options para que su evento OnClick esté enlazado a optionsButtonClick.

¿Cómo implementar controles de audio en la pantalla de opciones?

Una vez integrado el estado de opciones, es momento de configurar los controles de audio en la pantalla. Esto permitirá a los usuarios establecer el volumen de música y efectos sonoros.

Configuración de los elementos en Unity

  1. Agregar componente UIScreen:

    • En la pantalla de UIOptions, se añade un componente UIScreen para controlar la visibilidad en el estado de Options.
  2. Ajustar diseño de pantalla:

    • Agrupar elementos correctamente y ajustar el tamaño y el espaciado de los controles de volumen.

Código para controlar el volumen

  1. Crear script UIOptions:
    • Este script se encargará de manejar los valores de los controles de audio, utilizando variables enteras para volumen y efectos sonoros (SFX).
public int volume;
public int sfx;
public TextMeshProUGUI volumeLabel;
public TextMeshProUGUI sfxLabel;

public void AddVolume() {
    volume++;
    UpdateVolumeLabel();
}

public void MinusVolume() {
    volume--;
    UpdateVolumeLabel();
}
  1. Inicializar y actualizar etiquetas:

    • Comenzamos con valores por defecto (ej., volumen de 10) y actualizamos las etiquetas con las funciones Add y Minus.
  2. Limitar valores numéricos:

    • Utilizamos Mathf.Clamp para limitar los valores entre 0 y 10 en todas las funciones relevantes al ajustar el volumen y los efectos sonoros.
volume = Mathf.Clamp(volume, 0, 10);
  1. Configurar eventos OnClick:
    • Enlazar cada botón específico para aumentar o disminuir Volume y SFX a las funciones correspondientes en UIOptions.

¿Cómo conectar la UI a la lógica de audio real?

Aunque hemos creado una pantalla que permite ver ajustes de volumen, aún es necesario conectar estos controles a la lógica interna del audio. Aquí hay algunas consideraciones:

  • Enlazar a AudioManager: Busca formas de integrar UIOptions con la clase AudioManager para efectuar los cambios de volumen de manera realista.
  • Explorar APIs de audio: Utiliza las herramientas de Unity para manipular niveles de audio en tus proyectos.

Invitación a la comunidad

¡Queremos escuchar de ti! ¿Se te ocurre alguna manera de conectar el UIOptions a la clase AudioManager para gestionar el volumen realmente? Comparte tu solución en los comentarios y ayudemos a que otros también aprendan.