Menu
CoddyTech

ينتهي الجري بالاصطدام

جزء من قسم إنشاء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 31 من 60.

challenge icon

التحدي

متوسط

يجب أن يؤدي الاصطدام إلى إيقاف الجولة.

  1. فوق GameManager، عرّف public enum GameState { Playing, GameOver }؛ وأضف داخلها public GameState state = GameState.Playing;.
  2. تُعيّن public void GameOver() قيمة state إلى GameState.GameOver وspeed إلى 0، وتُظهر gameOverPanel.
  3. يستدعي Runner الدالة GameManager.Instance.GameOver() عند حدوث مُحفّز يحمل الوسم Obstacle. تبدأ GameManager وRunner وSpawner الدالة Update() بعبارة return ما لم تكن الحالة Playing.

اضغط «العب» واصطدم: سيتوقف كل شيء. ثم اضغط «تحقق».

جرّب بنفسك

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

جميع دروس إنشاء ألعاب حقيقية

تدرّب بنفسك: Playground لـ Unity