Najlepszy bieg
Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 33 z 60.
Ostatni krok Endless Runner: najlepszy wynik jest przechowywany w PlayerPrefs, tak jak najlepszy wynik wcześniej, dzięki czemu pozostaje zapisany po ponownym uruchomieniu i zamknięciu gry.
Wyzwanie
ŚredniZapisz najlepszy wynik pod kluczem BestRun.
- Dodaj
private int best;. WStart()wczytaj go za pomocąPlayerPrefs.GetInt("BestRun", 0)i wyświetl"Best: " + best + " m"wbestText. - Na końcu
GameOver(), gdyMathf.FloorToInt(distance)jest większe niżbest, zapisz wynik, wyświetl go i wywołajnewBestText.SetActive(true);.
Naciśnij „Graj”, ustanów najlepszy wynik, a następnie go pobij: pojawi się komunikat „New best!”. Potem naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
public enum GameState { Playing, GameOver }
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;
public GameObject gameOverPanel;
public Button restartButton;
public GameState state = GameState.Playing;
public TMP_Text bestText;
public GameObject newBestText;
private float distance;
void Awake()
{
Instance = this;
}
void Start()
{
restartButton.onClick.AddListener(Restart);
}
void Update()
{
if (state != GameState.Playing) return;
speed = Mathf.Min(speed + speedUp * Time.deltaTime, maxSpeed);
distance += speed * Time.deltaTime;
distanceText.text = "Distance: " + Mathf.FloorToInt(distance) + " m";
}
public void GameOver()
{
state = GameState.GameOver;
speed = 0f;
gameOverPanel.SetActive(true);
}
void Restart()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
}
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ściomierz2Przyciski 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 banku3Menedżer gry
Jeden skrypt obsługuje gręSingletonStany gryInstrukcja switch dla stanuPowtórka: menedżer rund6Projekt: Niekończący się bieg
Trzy toryPrzeszkody przed tobąPoćwicz samodzielnie: Edytor online Unity