Pular para o conteúdo
Criar jogos Cursos

Unreal Engine 5: condição de vitória, derrota e reinício do jogo

Aprenda a criar vitória, derrota e reinício de fase no Unreal Engine 5 com Blueprints, widgets e controle de entrada.

Uma condição de fim de jogo precisa interromper a partida de forma clara, apresentar o resultado e permitir uma nova tentativa. Em um projeto simples de Unreal Engine 5, a lógica pode combinar colisão, controle de entrada, widgets de interface e recarga do mapa para transformar a coleta de itens e a perseguição de um inimigo em um ciclo completo.

Derrota sem quebrar a lógica do inimigo

O primeiro teste usa o evento de colisão da esfera do inimigo. Ao comparar o Other Actor com o personagem do jogador por meio de um Branch, a colisão identifica o alvo correto. Destruir o personagem parece direto, mas remove a referência que a esfera usa para persegui-lo e pode interromper seu comportamento.

Uma alternativa mais estável é aplicar Set Ignore Move Input ao Player Controller quando a colisão é confirmada. Também é possível usar Set Ignore Look Input para bloquear a câmera. Assim, o personagem deixa de responder aos comandos, enquanto a referência dele continua disponível para a lógica de movimentação do inimigo.

Blueprint do inimigo configurando bloqueio de movimento após colisão

A colisão com o inimigo pode bloquear os comandos sem destruir o personagem.

Interface para vitória e derrota

A tela de derrota pode nascer da duplicação do widget de vitória. O novo widget recebe uma mensagem de derrota e um botão para reiniciar a experiência. A duplicação preserva a estrutura visual e permite que os dois resultados mantenham um comportamento consistente, com textos e eventos próprios.

No Event Construct de cada widget, Set Show Mouse Cursor torna o cursor visível e Set Input Mode UI Only desloca o foco para a interface. A referência Self define qual widget receberá a interação. Dessa forma, o botão permanece acessível quando a partida termina.

Widget de interface com cursor do mouse e foco no botão

Os widgets de resultado ativam o cursor e transferem o foco para a interface.

Reinício controlado pelo mapa

O evento OnClicked do botão pode chamar Open Level by Name com o nome do mapa atual, como First Person Map. Ao abrir o mesmo nível novamente, os atores e os estados da partida são recriados. Essa solução é adequada para um protótipo com uma única fase e evita a necessidade de reconstruir manualmente cada objeto.

Na Blueprint do mapa, o Event Begin Play restaura o foco com Set Input Mode Game Only e o Player Controller. Esse passo é importante porque a rodada anterior terminou com a interface em primeiro plano. O novo carregamento devolve os comandos ao jogo antes de o personagem voltar a se mover.

Blueprint do botão configurada para abrir novamente o mapa First Person

O botão de reinício recarrega o mapa para restaurar o estado inicial da partida.

Conectando os dois resultados

Quando o inimigo alcança o personagem, a Blueprint cria o widget de derrota e o adiciona à tela do jogador. Quando todas as esferas são coletadas, a sequência de vitória bloqueia o movimento e localiza o BP Enemy com Get Actor of Class para destruí-lo. A tela de vitória então encerra a ameaça e libera o mesmo caminho de reinício.

Durante os testes, um inimigo que deixa de se mover pode indicar a ausência do Nav Mesh Bounds Volume. Reposicionar ou adicionar esse volume recupera a navegação. Também vale usar Is Valid antes de consultar o personagem: a checagem evita tentar acessar uma referência ainda indisponível no início da partida.

Blueprint de vitória destruindo o inimigo após a coleta das esferas

A vitória encerra a perseguição ao destruir o inimigo da fase.

Com colisão, interface, foco de entrada e reinício organizados, o projeto passa a ter uma estrutura de jogo mais legível: perseguir, vencer ou perder, exibir o resultado e recomeçar. Esse fluxo cria uma base reutilizável para fases, inimigos e objetivos mais complexos.

Fonte: Neriverso

Neriverso

neriverso

Conteúdo publicado pela equipe Neriverso.