Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Estado de Dash | Comportamiento del Enemigo
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

bookEstado de Dash

Controlador de Animador

Propósito del Controlador de Animador

La clase AnimatorController está diseñada para gestionar y activar comportamientos del enemigo a través de eventos del animador. Esto permite una integración fluida de transiciones de animación y cambios de estado, asegurando que el comportamiento del enemigo coincida con sus animaciones.

Definición de Clase y Variable Miembro

Definición de Clase: public class AnimatorController : MonoBehaviour define una clase que hereda de MonoBehaviour, permitiendo que se adjunte a un GameObject en Unity.

Variable Miembro: [SerializeField] Enemy enemy; es un campo serializado que te permite vincular un objeto Enemy al AnimatorController directamente desde el Inspector de Unity. La variable enemy es una referencia al script del enemigo, que contiene funciones que controlan el comportamiento del enemigo.

Métodos

Método FinishMovement: public void FinishMovement(): Este método llama a enemy.FinishMovement(). Está diseñado para ser llamado por un evento del animador, señalando el final de una animación de movimiento.

Método EndCurrentState: public void EndCurrentState(): Este método llama a enemy.EndCurrentState(). Está destinado a ser llamado por un evento del animador para señalar el final del estado actual.

Integración con Eventos del Animador

Eventos del Animador: Los eventos del animador son eventos especiales que se pueden colocar en las líneas de tiempo de animación dentro del Animator de Unity. Estos eventos pueden llamar a funciones en scripts adjuntos al mismo GameObject o a sus hijos.

Cómo Funciona: Durante una animación, como una animación de correr o atacar, puntos específicos en la línea de tiempo pueden activar eventos.

Estado de Dash

Explicación de la Clase DashState

La clase DashState es un estado específico que maneja el comportamiento de dash del enemigo. Esta clase hereda de la clase State e incluye métodos para iniciar, actualizar y finalizar el estado de dash, así como manejar el evento de finalización de movimiento.

Constructor

El constructor inicializa el DashState con los componentes necesarios: un Rigidbody2D para el movimiento, un Animator, un Transform para el jugador y una velocidad de dash. Establece la escala inicial e inicializa el vector de velocidad.

Método StartState

Este método establece isStateFinished en false y activa la animación de dash configurando el parámetro booleano "dash" en el animador a true. También reinicia la bandera stopDashing a false.

Método FinishMovement

Este método establece stopDashing en true, lo que detendrá la acción de dash en el método UpdateState.

Método UpdateState

Este método actualiza la posición y orientación del enemigo basándose en la posición del jugador. Si stopDashing es true, el método retorna temprano, deteniendo más actualizaciones. Ajusta la escala del enemigo para enfrentar al jugador, calcula la velocidad basada en la rapidez y aplica esta velocidad al Rigidbody2D.

Método EndState

Este método detiene la animación de carrera estableciendo el parámetro booleano "dash" en el animador a false.

Por qué lo hicimos así

La bandera stopDashing permite un control preciso sobre cuándo debe detenerse la carrera, haciendo que el comportamiento sea más receptivo a los eventos del juego. Al actualizar continuamente la posición y dirección del enemigo, el DashState asegura que el enemigo pueda correr rápida y precisamente hacia el jugador. Usar parámetros del animador asegura que las animaciones del enemigo estén correctamente sincronizadas con sus movimientos, proporcionando una experiencia fluida y realista.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6
some-alt