Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda 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

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

question mark

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

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 1

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

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

question mark

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

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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