Melhor Tempo
Parte da seção Criando jogos de verdade do Journey de Unity da Coddy. Lição 53 de 56.
Desafio
MédioÚltima etapa: cada nível guarda o seu melhor tempo. Mantenha tudo das lições anteriores. O HUD de cada nível tem um BestText no canto superior direito, e a cena o coloca no novo campo bestText de FinishLine.
Em FinishLine (adicione using TMPro;):
- Um campo
TMP_TextbestTextdefinido pelo Inspector, e o tempo da partida: umfloatque aumenta a cada quadro porTime.deltaTime. - Cada nível salva seu melhor tempo com sua própria chave do PlayerPrefs:
BestTime_e o nome do nível, comoBestTime_Level1. - Em
Start, mostre o melhor tempo salvo do nível com uma casa decimal, comoBest: 12.4 s, ouBest: nonequando ainda não houver um. - Quando o jogador cruzar a linha de chegada, antes de carregar o próximo nível, salve o tempo da partida se o nível ainda não tiver um melhor tempo ou se a partida o superar. Uma partida mais lenta não altera o melhor tempo.
Pressione Play e marque um tempo, depois tente superá-lo e, em seguida, Check.
Experimente você mesmo
using UnityEngine;
using UnityEngine.SceneManagement;
public class FinishLine : MonoBehaviour
{
void OnTriggerEnter(Collider other)
{
if (other.GetComponent<Player>() == null) return;
Scene level = SceneManager.GetActiveScene();
Debug.Log(level.name + " complete!");
int next = level.buildIndex + 1;
if (next >= SceneManager.sceneCountInBuildSettings)
{
next = 0;
}
SceneManager.LoadScene(next);
}
}
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 banco