Conteúdo do Curso
Jogo de Luta no Unity
Jogo de Luta no Unity
Estado do Dash
Controlador de Animador
Propósito do Controlador de Animador
A classe AnimatorController
é projetada para gerenciar e acionar comportamentos do inimigo através de eventos do animador. Isso permite uma integração perfeita das transições de animação e mudanças de estado, garantindo que o comportamento do inimigo corresponda às suas animações.
Definição da Classe e Variável Membro
Definição da Classe:
public class AnimatorController : MonoBehaviour
define uma classe que herda de MonoBehaviour
, permitindo que ela seja anexada a um GameObject
no Unity.
Variável Membro:
[SerializeField] Enemy enemy;
é um campo serializado que permite vincular um objeto Enemy
ao AnimatorController
diretamente do Inspetor do Unity.
A variável enemy
é uma referência ao script do inimigo, que contém funções que controlam o comportamento do inimigo.
Métodos
Método FinishMovement:
public void FinishMovement()
: Este método chama enemy.FinishMovement()
. Ele é projetado para ser chamado por um evento do animador, sinalizando o fim de uma animação de movimento.
Método EndCurrentState:
public void EndCurrentState()
: Este método chama enemy.EndCurrentState()
. Ele é destinado a ser chamado por um evento do animador para sinalizar o fim do estado atual.
Integração com Eventos do Animator
Eventos do Animator:
Eventos do Animator são eventos especiais que podem ser colocados em linhas do tempo de animação dentro do Animator do Unity.
Esses eventos podem chamar funções em scripts anexados ao mesmo GameObject
ou seus filhos.
Como Funciona: Durante uma animação, como uma animação de corrida ou ataque, pontos específicos na linha do tempo podem disparar eventos.
Estado de Dash
Explicação da Classe DashState
A classe DashState
é um estado específico que lida com o comportamento de dash do inimigo. Esta classe herda da classe State
e inclui métodos para iniciar, atualizar e terminar o estado de dash, bem como lidar com o evento de término do movimento.
Construtor
O construtor inicializa o DashState
com os componentes necessários: um Rigidbody2D
para movimento, um Animator
, um Transform
para o jogador e uma velocidade de dash. Ele define a escala inicial e inicializa o vetor de velocidade.
Método StartState
Este método define isStateFinished
como false
e aciona a animação de dash definindo o parâmetro booleano "dash" no animator como true
. Ele também redefine a flag stopDashing
para false
.
Método FinishMovement
Este método define stopDashing
como true
, o que interromperá a ação de dash no método UpdateState
.
Método UpdateState
Este método atualiza a posição e a orientação do inimigo com base na posição do jogador. Se stopDashing
for true
, o método retorna cedo, interrompendo atualizações adicionais. Ele ajusta a escala do inimigo para enfrentar o jogador, calcula a velocidade com base na velocidade e aplica essa velocidade ao Rigidbody2D
.
Método EndState
Este método interrompe a animação de dash definindo o parâmetro booleano "dash" no animador como false
.
Por Que Fizemos Assim
A flag stopDashing
permite um controle preciso sobre quando o dash deve parar, tornando o comportamento mais responsivo aos eventos do jogo. Ao atualizar continuamente a posição e a direção do inimigo, o DashState
garante que o inimigo possa rapidamente e com precisão avançar em direção ao jogador. Usar parâmetros do animador garante que as animações do inimigo estejam corretamente sincronizadas com seus movimentos, proporcionando uma experiência suave e realista.
Obrigado pelo seu feedback!