Contenido del Curso
Juego de Lucha en Unity
Juego de Lucha en Unity
Estado 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.
¡Gracias por tus comentarios!