Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Crear Menú Principal | Mejorar el Juego
Juego de Lucha en Unity
course content

Contenido del Curso

Juego de Lucha en Unity

Juego de Lucha en Unity

1. Sistema de Animación de Unity
2. Comportamiento del Jugador
3. Comportamiento del Enemigo
4. Mejorar el Juego
5. Mejorar el Juego de Flappy Bird

book
Crear Menú Principal

Menú Principal

Script para el Menú Principal

La clase MainUI es un script simple que proporciona funcionalidad para iniciar el juego y salir de la aplicación. Este script está diseñado para ser utilizado con botones de UI en Unity.

Definición de la Clase y Métodos

El método StatTheGame está diseñado para iniciar el juego cargando una nueva escena. Específicamente, SceneManager.LoadScene(1) dirige a Unity a cargar la escena con el índice de construcción 1, que corresponde a su posición en la Configuración de Construcción.

El método Quit permite cerrar la aplicación llamando a Application.Quit(), aunque esta funcionalidad solo es efectiva en una aplicación construida y no dentro del Editor de Unity.

Uso en Unity

Adjuntar el Script

Crea un GameObject (por ejemplo, un GameObject vacío o un elemento de UI). Adjunta el script MainUI al GameObject arrastrando el script sobre él o usando el botón Add Component en el Inspector.

Configuración de Botones de UI

Crea un botón de UI (por ejemplo, GameObject > UI > Button). Selecciona el botón y ve al Inspector. En la sección On Click (), haz clic en el botón + para agregar un nuevo evento. Arrastra el GameObject con el script MainUI adjunto al campo de objeto. Desde el menú desplegable, selecciona MainUI > functionName.

Gestor de Juego

Script para el Gestor de Juego

La clase GameManager es responsable de gestionar el estado del juego. Utiliza un patrón singleton para asegurar que solo haya una instancia de GameManager en el juego, gestiona el estado del juego y transmite los cambios de estado usando eventos.

Definición de Clase y Variables Miembro

Métodos

Método Awake

Propósito: Asegura que solo haya una instancia de GameManager y evita que se destruya al cargar nuevas escenas.

Patrón Singleton: Verifica si ya existe una instancia. Si es así, destruye el duplicado. De lo contrario, asigna la instancia y marca el objeto para que no se destruya al cargar una nueva escena.

Método Start

Propósito: Inicializa el estado del juego a Playing cuando el juego comienza y activa el evento onGameStateChanges.

Método FinishGame

Propósito: Establece el estado del juego a Finished y activa el evento onGameStateChanges.

Enum GameStates

Propósito: Define los posibles estados del juego.

Enemigo Reacciona a Cambios en el Estado del Juego

Este método maneja los cambios en el estado del juego. Cuando el estado del juego cambia a Finished, el estado del enemigo se cambia a idle.

Panel de Finalización

Script para el Panel de Finalización

La clase FinishPanel maneja la visualización y funcionalidad del panel de finalización que aparece cuando el juego termina. Este panel proporciona retroalimentación al jugador sobre si ha ganado o perdido y ofrece opciones para volver al menú principal o salir del juego.

Explicación

Métodos

Método Start

Propósito: Se suscribe al evento GameManager.onGameStateChanges para escuchar cambios en el estado del juego.

Método GameManager_onGameStateChanges

Propósito: Maneja los cambios en el estado del juego. Cuando el estado del juego es Finished, activa el panel de finalización y llama a OnGameFinished.

Método OnGameFinished

Propósito: Actualiza el texto del panel de finalización basado en si el jugador está muerto o vivo.

Lógica: Si el jugador está muerto, el método establece el texto en "You lost" en rojo. Si el jugador está vivo, establece el texto en "You Won" en verde.

Método BackToMainMenu

Propósito: Carga la escena del menú principal (índice de construcción 0) cuando se llama. Este método está destinado a ser vinculado a un botón en la interfaz de usuario.

Método Quit

Propósito: Cierra la aplicación cuando se llama. Este método está destinado a ser vinculado a un botón en la interfaz de usuario.

Resumen

La clase FinishPanel muestra los resultados del final del juego y ofrece opciones para regresar al menú principal o salir. Se suscribe a GameManager.onGameStateChanges para actualizarse adecuadamente cuando el juego termina, mejorando la experiencia del usuario con comentarios claros y opciones intuitivas.

1. ¿Qué sucede cuando se llama al método `FinishGame` en la clase `GameManager`?
2. ¿Qué sucede cuando el `GameManager` cambia el estado del juego a `GameStates.Finished`?
¿Qué sucede cuando se llama al método `FinishGame` en la clase `GameManager`?

¿Qué sucede cuando se llama al método FinishGame en la clase GameManager?

Selecciona la respuesta correcta

¿Qué sucede cuando el `GameManager` cambia el estado del juego a `GameStates.Finished`?

¿Qué sucede cuando el GameManager cambia el estado del juego a GameStates.Finished?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3
We're sorry to hear that something went wrong. What happened?
some-alt