Wyścig z czasem
Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 55 z 56.
Próba na czas w ogrodzie. Biegacz zaczyna na jednym końcu, mając na zegarze dziesięć sekund, i musi dotrzeć do białego celu na drugim końcu, omijając żywopłot, zanim skończy się czas. Złote zegary po drodze dodają po kilka sekund. Gdy czas prawie się kończy, zegar zmienia kolor na czerwony; gdy się skończy, wyścig zaczyna się od nowa. Dotrzyj do celu na czas, a gra przejdzie do sceny Finish.
Napisz dwa skrypty: Runner dla biegacza, obiektu typu CharacterController, oraz Race dla obiektu Race.
Wyzwanie
TrudnyKompozycja ma dwie sceny: Track i Finish. Na torze zegary mają tag Clock, a meta — Goal; oba są wyzwalaczami.
Inspector przypisuje do Runner wartości speed (6), gravity (-9.81) i race (skrypt Race).
- Akcja Move projektu porusza biegaczem z prędkością
speedjednostek na sekundę: w prawo i w lewo wzdłuż osi x, w górę i w dół wzdłuż osi z. Biegacz opada pod wpływemgravityi porusza się wyłącznie za pomocącontroller.Move, więc żywopłot go zatrzymuje. - Wbiegnięcie w zegar zużywa go i dodaje bonus do czasu wyścigu. Wbiegnięcie na metę kończy wyścig.
Inspector przypisuje do Race wartości timeLimit (10), bonus (3) i timeText.
- Pozostały czas zaczyna się od wartości
timeLimiti zmniejsza się wraz z upływem rzeczywistego czasu.timeTextwyświetla go z jednym miejscem po przecinku, jakoTime: 7.4, na biało, a na czerwono (Color.red), gdy pozostają mniej niż 3 sekundy. - Każdy zegar dodaje
bonussekund. - Gdy czas osiągnie 0, zapisz w logu
Time's up!i wczytaj ponownie tor od początku. - Gdy wyścig zostanie ukończony przed upływem czasu, zapisz w logu pozostały czas, jako
Finished with 4.2 s left, i wczytaj scenę Finish.
Naciśnij Play i wyprzedź czas, a następnie Check.
Spróbuj swoich sił
using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;
public class Race : MonoBehaviour
{
public float timeLimit = 10f;
public float bonus = 3f;
public TMP_Text timeText;
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
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