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
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
. Esta 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
). Ela 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 no DeathState
, o método retorna cedo, evitando quaisquer atualizações adicionais para enfrentar o jogador ou outros comportamentos.
Enfrentando o Jogador
As seguintes linhas garantem que o inimigo sempre esteja voltado para o jogador:
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 à transformação do inimigo, garantindo que ele esteja voltado na direção correta.
Por Que Fizemos Assim
Lidando com o Estado de Morte
Adicionar a verificação para DeathState
garante que o inimigo não continue a atualizar seu comportamento ou orientação após ter morrido. Isso é crucial para manter a lógica do jogo e evitar comportamentos inesperados após o inimigo estar supostamente inativo.
Lógica Centralizada
Ao mover a lógica de enfrentamento do jogador para o método Update
, centralizamos esse comportamento, reduzindo a redundância e melhorando a manutenção do código.
Isso garante que o inimigo sempre esteja voltado para o jogador, independentemente do estado atual, o que simplifica o código específico do estado.
Explicação do Tratamento de Morte do Inimigo
A classe DeathState
é um estado específico que lida com o comportamento do inimigo quando ele morre.
Por Que Fizemos Assim
Tratamento do Comportamento de Morte
A classe DeathState
gerencia especificamente o comportamento do inimigo quando ele morre, garantindo que a animação de morte seja reproduzida e o estado seja marcado como concluído.
Integração de Animação
Usar parâmetros do animador garante que a animação de morte seja corretamente sincronizada com a mudança de estado, proporcionando uma experiência suave e realista.
Geração de Partículas na Morte do Inimigo
Este código mostra como o inimigo lida com sua morte quando sua saúde chega a zero. Ele transita para o DeathState
e reproduz um efeito de partículas de morte.
Análise do Código
Verificação de Saúde
if (health <= 0)
Esta condição verifica se a saúde do inimigo caiu para zero ou abaixo.
Transição para DeathState
stateManager.ChangeState(deathState)
Esta linha faz a transição do inimigo para o DeathState
usando o StateManager
.
Instanciar 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.
Reproduzir Partículas de Morte
deathParticle.Play()
Esta linha reproduz o efeito de partículas instanciado.
Destruir Partículas de Morte
Destroy(deathParticle.gameObject, 5)
Esta linha agenda a destruição do GameObject
do efeito de partículas após 5 segundos, garantindo que ele não persista 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 gerenciado adequadamente e que qualquer lógica específica para o estado de morte seja executada.
Efeitos Visuais: Reproduzir um efeito de partículas de morte fornece feedback visual ao jogador, melhorando a experiência do jogo.
Obrigado pelo seu feedback!