Repaso: gestor de rondas
Parte de la sección Creación de juegos reales del Journey de Unity de Coddy. Lección 16 de 60.
Este capítulo le dio al juego un administrador: un singleton al que los demás acceden sin un campo y los estados entre los que cambia. El administrador de rondas pone ambos en práctica.
Desafío
FácilTermina el juego de recoger monedas; SetState está escrito.
- Añade
public static RoundManager Instance;, asignándolo enAwake(). - En
Update(), usastatepara decidir: Ready espera a que se pulse Space; Playing descuentatimeLefty después pasa al siguiente Ready o, tras la última ronda, a Finished. public bool TakeCoin(): solo durante Playing, cuenta la moneda, muestraCoins: 2y devuelve true.Coin.csdestruye la moneda contabilizada que toca el Player.
Pulsa «Jugar» para completar las tres rondas. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
using TMPro;
public enum RoundState { Ready, Playing, Finished }
public class RoundManager : MonoBehaviour
{
// el singleton: una Instance estática, asignada en 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()
{
// selecciona según state: Ready espera a que se pulse Space; Playing hace la cuenta regresiva
}
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(): una moneda solo cuenta mientras se está en Playing
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Creación de juegos reales
1Texto en pantalla
Canvas y textoMuestra la puntuaciónDa formato a los númerosUn temporizador de cuenta regresivaRepaso: velocímetro2Botones y pantallas
Botones y onClickLambdasConectar en el InspectorPaneles activados y desactivadosBarras de saludRepaso: tienda de mejoras5Guardar con PlayerPrefs
Guardar un númeroCargar con un valor predeterminadoPuntuación más altaGuardar ajustesRepaso: monedas en el banco3El gestor del juego
Un solo script ejecuta el juegoEl SingletonEstados del juegoActivar el estadoRepaso: gestor de rondas6Proyecto: Corredor sin fin
Tres carrilesObstáculos por delante9El nuevo sistema de entrada
Dos sistemas de entradaTeclado y ratónPulsado en este fotogramaAcciones de entradaRepaso: cambio de entradaPractica por tu cuenta: Playground de Unity