Menu
CoddyTech

Lượt chạy tốt nhất

Thuộc phần Xây dựng trò chơi thực tế trong hành trình Unity của Coddy. Bài học 33 trên 60.

Bước cuối cùng của Endless Runner: lần chơi tốt nhất được lưu trong PlayerPrefs, giống như điểm cao nhất trước đó, nên vẫn còn khi bạn nhấn Chạy lại hoặc thoát trò chơi.

challenge icon

Thử thách

Trung bình

Lưu lần chạy tốt nhất dưới khóa (key) BestRun.

  1. Thêm private int best;. Trong Start(), tải giá trị này bằng PlayerPrefs.GetInt("BestRun", 0) rồi hiển thị "Best: " + best + " m" trong bestText.
  2. Ở cuối GameOver(), nếu Mathf.FloorToInt(distance) lớn hơn best, hãy lưu giá trị đó, hiển thị nó và gọi newBestText.SetActive(true);.

Nhấn Chơi, lập kỷ lục rồi vượt qua kỷ lục đó: dòng chữ Kỷ lục mới! sẽ xuất hiện. Sau đó, nhấn Kiểm tra.

Tự làm thử

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);
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Xây dựng trò chơi thực tế

Tự luyện tập: Playground Unity