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.
Thử thách
Trung bìnhLưu lần chạy tốt nhất dưới khóa (key) BestRun.
- Thêm
private int best;. TrongStart(), tải giá trị này bằngPlayerPrefs.GetInt("BestRun", 0)rồi hiển thị"Best: " + best + " m"trongbestText. - Ở cuối
GameOver(), nếuMathf.FloorToInt(distance)lớn hơnbest, hãy lưu giá trị đó, hiển thị nó và gọinewBestText.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);
}
}
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ế
1Văn bản trên màn hình
Canvas và văn bảnHiển thị điểm sốĐịnh dạng sốĐồng hồ đếm ngượcÔn tập: Đồng hồ tốc độ7Điều khiển thời gian
Tạm dừng bằng timeScaleChuyển động chậmThời gian không bị co giãnÔn tập: Bullet Time2Nút bấm và màn hình
Nút bấm và onClickLambdaKết nối trong InspectorBật và tắt bảngThanh máuÔn tập: Cửa hàng nâng cấp5Lưu dữ liệu với PlayerPrefs
Lưu một sốTải với giá trị mặc địnhĐiểm cao nhấtLưu cài đặtÔn tập: Tiền xu trong ngân hàng3Trình quản lý trò chơi
Một script chạy trò chơiSingletonCác trạng thái trò chơiChuyển đổi trạng tháiÔn tập: Trình quản lý vòng chơi6Dự án: trò chơi chạy vô tận
Ba làn đườngChướng ngại vật phía trướcTự luyện tập: Playground Unity