Conteúdo do Curso
Jogo de Luta no Unity
Jogo de Luta no Unity
Adicionar Partículas
Explicação das Alterações no Método Update
csharp
O método Update
no script do inimigo agora inclui lógica para atualizar o gerenciador de estados, garantir que o inimigo esteja voltado para o jogador e lidar com um caso específico em que o inimigo está em um DeathState
. Essa lógica foi adicionada para evitar que o inimigo continue voltado para o jogador após ter morrido.
Componentes do Método
Atualização do StateManager
stateManager.UpdateStates(Time.deltaTime)
Esta linha atualiza o gerenciador de estados, passando o tempo decorrido desde o último frame (Time.deltaTime
). Garante que o estado atual seja atualizado corretamente a cada frame.
Verificação do DeathState
if (stateManager.GetCurrentState() is DeathState) return;
Esta linha verifica se o estado atual é DeathState
.
Se o inimigo estiver em DeathState
, o método retorna imediatamente, impedindo quaisquer outras atualizações para virar em direção ao jogador ou outros comportamentos.
Virando para o Jogador
As linhas a seguir garantem que o inimigo sempre esteja voltado para o jogador:
csharp
scale.x = transform.position.x > player.position.x ? -1 : 1;
Esta linha verifica se a posição x do inimigo é maior que a posição x do jogador:
Se verdadeiro,
scale.x
é definido como-1
, fazendo o inimigo olhar para a esquerda;Se falso,
scale.x
é definido como1
, fazendo o inimigo olhar para a direita.
transform.localScale = scale;
Esta linha aplica a escala atualizada ao transform do inimigo, garantindo que ele esteja voltado para a direção correta.
Por que Fizemos Desta Forma
Tratamento do Estado de Morte
Adicionar a verificação para DeathState
garante que o inimigo não continue atualizando seu comportamento ou orientação após ter morrido. Isso é fundamental para manter a lógica do jogo e evitar comportamentos inesperados depois que o inimigo deveria estar inativo.
Lógica Centralizada
Ao mover a lógica de orientação para o jogador para o método Update
, centralizamos esse comportamento, reduzindo redundâncias e melhorando a manutenção do código.
Isso garante que o inimigo sempre fique voltado para o jogador, independentemente do estado atual, o que simplifica o código específico de cada estado.
Explicação do Tratamento de Morte do Inimigo
csharp
A classe DeathState
é um estado específico que trata o comportamento do inimigo quando ele morre.
Por que Fizemos Desta Forma
Manipulação do Comportamento de Morte
A classe DeathState
gerencia especificamente o comportamento do inimigo ao morrer, garantindo que a animação de morte seja executada e o estado seja marcado como finalizado.
Integração com Animação
O uso de parâmetros do animator garante que a animação de morte esteja corretamente sincronizada com a mudança de estado, proporcionando uma experiência suave e realista.
Geração de Partículas na Morte do Inimigo
csharp
Este código mostra como o inimigo lida com sua morte quando sua vida chega a zero. Ele faz a transição para o DeathState
e executa um efeito de partículas de morte.
Análise do Código
Verificação de Vida
if (health <= 0)
Esta condição verifica se a vida do inimigo caiu para zero ou menos.
Transição para DeathState
stateManager.ChangeState(deathState)
Esta linha faz a transição do inimigo para o DeathState
usando o StateManager
.
Instanciação das Partículas de Morte
var deathParticle = Instantiate(deathParticles, transform.position, Quaternion.identity)
Esta linha cria uma instância do efeito de partículas de morte na posição do inimigo.
deathParticles
é um prefab que contém o sistema de partículas para o efeito de morte.
Quaternion.identity
garante que as partículas não tenham rotação.
Execução das Partículas de Morte
deathParticle.Play()
Esta linha executa o efeito de partículas instanciado.
Destruição das Partículas de Morte
Destroy(deathParticle.gameObject, 5)
Esta linha agenda a destruição do objeto GameObject
do efeito de partículas após 5 segundos, garantindo que ele não permaneça indefinidamente no jogo.
Por Que Fizemos Desta Forma
Gerenciamento de Estado:
A transição para DeathState
garante que o comportamento de morte do inimigo seja devidamente gerenciado e que qualquer lógica específica para o estado de morte seja executada.
Efeitos Visuais: A execução de um efeito de partículas de morte fornece um retorno visual ao jogador, aprimorando a experiência do jogo.
Obrigado pelo seu feedback!