Colidir e Recomeçar
Parte da seção Criando jogos de verdade do Journey de Unity da Coddy. Lição 31 de 56.
Desafio
MédioUma colisão encerra a corrida, e um botão inicia a próxima. Mantenha tudo das lições anteriores. A tela tem um GameOverPanel oculto com um RestartButton rotulado como Run again, e a cena preenche dois novos campos de GameManager, gameOverPanel e restartButton. O Runner tem um Rigidbody cinemático, então recebe mensagens de gatilho dos obstáculos.
Em GameManager:
- Acima da classe, declare
public enum GameState { Playing, GameOver }e dê à classe um campopublic GameState stateque começa comoPlaying. - Adicione
using UnityEngine.UI;,using UnityEngine.SceneManagement;,public GameObject gameOverPanel;epublic Button restartButton;. - Um método público
GameOver()definestatecomoGameOver, definespeedcomo 0, o que para todos os obstáculos, e mostra o painel. Update()não faz nada a menos que o estado sejaPlaying, então a velocidade e a distância param.- Em
Start(), faça com querestartButtonrecarregue a cena que está em execução.
Em Runner: quando entrar em um gatilho marcado com Obstacle, chame GameManager.Instance.GameOver(). Enquanto o estado não for Playing, as setas não fazem nada.
Em Spawner: não gere nada enquanto o estado não for Playing.
Pressione Play, colida e comece outra corrida, depois Check.
Experimente você mesmo
using UnityEngine;
using TMPro;
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
public float speed = 10f;
public float speedUp = 0.5f;
public float maxSpeed = 20f;
public TMP_Text distanceText;
private float distance;
void Awake()
{
Instance = this;
}
void Update()
{
speed = Mathf.Min(speed + speedUp * Time.deltaTime, maxSpeed);
distance += speed * Time.deltaTime;
distanceText.text = "Distance: " + Mathf.FloorToInt(distance) + " m";
}
}
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ímetro4Cenas e Fases
Carregar uma CenaReiniciar a FasePróxima FaseManter entre CenasRevisão: Seleção de Fases10Projeto: Jogo de Plataforma 3D
O PercursoPlataformas Móveis2Botõ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 Rodadas6Projeto: Corredor Infinito
Três FaixasObstáculos à Frente