Revisão: Gerenciador de Rodadas
Parte da seção Criando Jogos de Verdade do Journey de Unity da Coddy. Lição 16 de 60.
Este capítulo deu ao jogo um gerenciador: um singleton que os outros acessam sem um campo e os estados entre os quais ele alterna. O gerenciador de rodada coloca ambos em uso.
Desafio
FácilConclua a coleta de moedas; SetState já está escrito.
- Adicione
public static RoundManager Instance;, definido emAwake(). - Em
Update(), faça uma seleção com base emstate: Ready aguarda a tecla Space; Playing decrementatimeLefte, em seguida, passa para Ready na próxima rodada ou para Finished após a última rodada. public bool TakeCoin(): somente durante Playing, conte a moeda, exibaCoins: 2e retorne true.Coin.csdestrói uma moeda contabilizada quando o Player toca nela.
Pressione “Jogar” nas três rodadas. Depois, “Verificar”.
Experimente você mesmo
using UnityEngine;
using TMPro;
public enum RoundState { Ready, Playing, Finished }
public class RoundManager : MonoBehaviour
{
// o singleton: uma Instance estática, definida em Awake()
public GameObject readyPanel;
public GameObject playPanel;
public GameObject finishedPanel;
public TMP_Text roundText;
public TMP_Text coinsText;
public TMP_Text finalText;
public int rounds = 3;
public float roundTime = 4f;
private RoundState state;
private int round = 1;
private int coins;
private float timeLeft;
void Start()
{
SetState(RoundState.Ready);
}
void Update()
{
// use switch com base em state: Ready espera por Space; Playing faz a contagem regressiva do tempo
}
void SetState(RoundState next)
{
state = next;
readyPanel.SetActive(next == RoundState.Ready);
playPanel.SetActive(next == RoundState.Playing);
finishedPanel.SetActive(next == RoundState.Finished);
if (next == RoundState.Ready) roundText.text = "Round " + round;
if (next == RoundState.Playing) timeLeft = roundTime;
if (next == RoundState.Finished) finalText.text = "Coins: " + coins;
}
// TakeCoin(): uma moeda só é contabilizada durante Playing
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Criando Jogos de Verdade
1Texto na tela
Canvas e textoExiba a pontuaçãoFormate númerosUm cronômetro regressivoRevisão: velocímetro2Botões e telas
Botões e onClickLambdasConectando no InspectorPainéis ligados e desligadosBarras de vidaRevisão: Loja de melhorias5Salvando com PlayerPrefs
Salvar um númeroCarregar com um valor padrãoRecordeSalvar configuraçõesRevisão: Moedas no banco3O Gerenciador do Jogo
Um Script Controla o JogoO SingletonEstados do JogoAlternando o EstadoRevisão: Gerenciador de RodadasPratique por conta própria: Playground de Unity