Najlepszy czas
Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 53 z 56.
Wyzwanie
ŚredniOstatni krok: każdy poziom zapamiętuje Twój najlepszy czas. Zachowaj wszystko z wcześniejszych lekcji. HUD każdego poziomu ma w prawym górnym rogu element BestText, a scena przypisuje go do nowego pola bestText w FinishLine.
W FinishLine (dodaj using TMPro;):
- Pole typu
TMP_Texto nazwiebestText, którego wartość ustawia Inspector, oraz czas biegu: wartość typufloat, która zwiększa się co klatkę oTime.deltaTime. - Każdy poziom zapisuje swój najlepszy czas pod własnym kluczem PlayerPrefs:
BestTime_i nazwę poziomu, na przykładBestTime_Level1. - W
Startwyświetl zapisany najlepszy czas poziomu z jednym miejscem po przecinku, jakoBest: 12.4 s, alboBest: none, jeśli nie ma jeszcze najlepszego czasu. - Gdy gracz przekroczy linię mety, przed załadowaniem kolejnego poziomu zapisz czas biegu, jeśli poziom nie ma jeszcze najlepszego czasu albo jeśli bieg był szybszy. Wolniejszy bieg nie zmienia najlepszego czasu.
Naciśnij Play i uzyskaj jakiś czas, a potem spróbuj go poprawić, a następnie naciśnij Check.
Spróbuj swoich sił
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);
}
}
Wszystkie lekcje w sekcji Tworzenie prawdziwych gier
1Tekst na ekranie
Canvas i tekstWyświetlanie wynikuFormatowanie liczbOdliczanie czasuPowtórka: prędkościomierz4Sceny i poziomy
Wczytaj scenęUruchom poziom ponownieNastępny poziomZachowaj między scenamiPodsumowanie: wybór poziomu10Projekt: platformówka 3D
TrasaRuchome platformy2Przyciski i ekrany
Przyciski i onClickLambdyPodłączanie w InspectorzeWłączanie i wyłączanie paneliPaski zdrowiaPodsumowanie: sklep z ulepszeniami5Zapisywanie za pomocą PlayerPrefs
Zapisz liczbęWczytywanie z wartością domyślnąNajlepszy wynikZapisz ustawieniaPodsumowanie: monety w banku