Conteúdo do Curso
Jogo de Luta no Unity
Jogo de Luta no Unity
Criar Menu Principal
Menu Principal
Script para Menu Principal
A classe MainUI
é um script simples que fornece funcionalidade para iniciar o jogo e sair da aplicação. Este script é destinado a ser usado com botões de UI no Unity.
Definição de Classe e Métodos
O método StatTheGame
é projetado para iniciar o jogo carregando uma nova cena. Especificamente, SceneManager.LoadScene(1)
direciona o Unity para carregar a cena com o índice de build 1
, que corresponde à sua posição nas Configurações de Build.
O método Quit
permite que a aplicação seja fechada chamando Application.Quit()
, embora essa funcionalidade só seja eficaz em uma aplicação compilada e não dentro do Editor do Unity.
Uso no Unity
Anexando o Script
Crie um GameObject (por exemplo, um GameObject vazio ou um elemento de UI).
Anexe o script MainUI
ao GameObject arrastando o script para ele ou usando o botão Add Component
no Inspector.
Configurando Botões de UI
Crie um botão de UI (por exemplo, GameObject > UI > Button
).
Selecione o botão e vá para o Inspector.
Na seção On Click ()
, clique no botão +
para adicionar um novo evento.
Arraste o GameObject com o script MainUI
anexado para o campo de objeto.
No menu suspenso, selecione MainUI > functionName
.
Gerenciador de Jogo
Script para Gerenciador de Jogo
A classe GameManager
é responsável por gerenciar o estado do jogo. Ela usa um padrão singleton para garantir que haja apenas uma instância de GameManager
no jogo, gerencia o estado do jogo e transmite mudanças de estado usando eventos.
Definição de Classe e Variáveis Membro
Métodos
Método Awake
Propósito: Garante que haja apenas uma instância de GameManager
e impede que ela seja destruída ao carregar novas cenas.
Padrão Singleton: Verifica se uma instância já existe. Se sim, destrói o duplicado. Caso contrário, atribui a instância e marca o objeto para não ser destruído ao carregar uma nova cena.
Método Start
Propósito: Inicializa o estado do jogo como Playing
quando o jogo começa e aciona o evento onGameStateChanges
.
Método FinishGame
Propósito: Define o estado do jogo como Finished
e aciona o evento onGameStateChanges
.
Enum GameStates
Propósito: Define os possíveis estados do jogo.
Inimigo Reage a Mudanças de Estado do Jogo
Este método lida com as mudanças de estado do jogo. Quando o estado do jogo muda para Finished
, o estado do inimigo é alterado para idle
.
Painel de Conclusão
Script para o Painel de Conclusão
A classe FinishPanel
lida com a exibição e funcionalidade do painel de conclusão que aparece quando o jogo termina. Este painel fornece feedback ao jogador sobre se ele ganhou ou perdeu e oferece opções para retornar ao menu principal ou sair do jogo.
Explicação
Métodos
Método Start
Propósito: Inscreve-se no evento GameManager.onGameStateChanges
para ouvir mudanças no estado do jogo.
Método GameManager_onGameStateChanges
Propósito: Lida com as mudanças de estado do jogo. Quando o estado do jogo é Finished
, ativa o painel de finalização e chama OnGameFinished
.
Método OnGameFinished
Propósito: Atualiza o texto do painel de finalização com base em se o jogador está morto ou vivo.
Lógica: Se o jogador está morto, o método define o texto como "Você perdeu" em vermelho. Se o jogador está vivo, define o texto como "Você venceu" em verde.
Método BackToMainMenu
Propósito: Carrega a cena do menu principal (índice de construção 0) quando chamado. Este método é destinado a ser vinculado a um botão na interface do usuário.
Método Quit
Propósito: Encerra a aplicação quando chamado. Este método é destinado a ser vinculado a um botão na interface do usuário.
Resumo
A classe FinishPanel
exibe os resultados do final do jogo e oferece opções para retornar ao menu principal ou sair. Ela se inscreve em GameManager.onGameStateChanges
para atualizar adequadamente quando o jogo termina, melhorando a experiência do usuário com feedback claro e opções intuitivas.
Obrigado pelo seu feedback!