Menu
CoddyTech

Повторный забег

Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 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