Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Adicionar Partículas | Melhore o Jogo
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

bookAdicionar 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 como 1, 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.

O que acontece com o sistema de partículas quando a saúde é menor ou igual a zero?

O que acontece com o sistema de partículas quando a saúde é menor ou igual a zero?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 1
some-alt