Menu
CoddyTech

再跑一次

本课属于 Coddy Unity 学习旅程的“打造真正的游戏”单元。第 32 课,共 60 课。

challenge icon

挑战

中等

让再次运行按钮开始新一轮游戏。

  1. 在 GameManager 中,编写 void Restart(),用于重新加载场景:SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);。
  2. 添加 void Start(),并加入 restartButton.onClick.AddListener(Restart);。

按下运行,撞上障碍物后点击再次运行:新一轮游戏就会开始。然后点击检查。

亲手试试

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

    void Awake()
    {
        Instance = this;
    }

    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);
    }
}

打造真正的游戏中的所有课

自己练习: Unity 在线编辑器