Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Estado do Dash | Comportamento do Inimigo
Jogo de Luta no Unity
course content

Conteúdo do Curso

Jogo de Luta no Unity

Jogo de Luta no Unity

1. Sistema de Animação do Unity
2. Comportamento do Jogador
3. Comportamento do Inimigo
4. Melhore o Jogo
5. Melhore o Jogo Flappy Bird

book
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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 6
We're sorry to hear that something went wrong. What happened?
some-alt