Menu
CoddyTech

Va chạm kết thúc lượt chạy

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 31 trên 60.

challenge icon

Thử thách

Trung bình

Va chạm sẽ dừng lượt chạy.

  1. Phía trên GameManager, khai báo public enum GameState { Playing, GameOver }; bên trong, thêm public GameState state = GameState.Playing;.
  2. public void GameOver() đặt state thành GameState.GameOver và speed thành 0, đồng thời hiển thị gameOverPanel.
  3. Runner gọi GameManager.Instance.GameOver() khi có va chạm với đối tượng gắn thẻ Obstacle. GameManager, Runner và Spawner bắt đầu Update() bằng return nếu không ở trạng thái Playing.

Nhấn Chơi rồi va chạm: mọi thứ sẽ dừng lại. Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;

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;
    private float distance;

    void Awake()
    {
        Instance = this;
    }

    void Update()
    {
        speed = Mathf.Min(speed + speedUp * Time.deltaTime, maxSpeed);
        distance += speed * Time.deltaTime;
        distanceText.text = "Distance: " + Mathf.FloorToInt(distance) + " m";
    }
}

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