Menu
CoddyTech

Çarp ve Yeniden Başla

Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 31 / 56.

challenge icon

Görev

Orta

Çarpışma koşuyu bitirir ve bir düğme sonraki koşuyu başlatır. Önceki derslerdeki her şeyi koru. Canvas'ta gizli bir GameOverPanel bulunur; bu panelde Run again etiketli bir RestartButton vardır ve sahne, GameManager bileşeninin gameOverPanel ve restartButton adlı iki yeni alanını doldurur. Runner'da kinematik bir Rigidbody bulunduğundan engellerden tetikleyici mesajları alır.

GameManager içinde:

  • Sınıfın üstünde public enum GameState { Playing, GameOver } bildirimini yap ve sınıfa başlangıç değeri Playing olan public GameState state alanını ekle.
  • using UnityEngine.UI;, using UnityEngine.SceneManagement;, public GameObject gameOverPanel; ve public Button restartButton; ekle.
  • GameOver() adlı bir public metot, state değerini GameOver olarak ayarlar, tüm engelleri durduran speed değerini 0 yapar ve paneli gösterir.
  • Update(), durum Playing olmadığı sürece hiçbir şey yapmaz; böylece hız ve mesafe artmayı durdurur.
  • Start() içinde, restartButton ile oynanmakta olan sahneyi yeniden yükle.

Runner içinde: Obstacle etiketi taşıyan bir tetikleyiciye girdiğinde GameManager.Instance.GameOver() metodunu çağır. Durum Playing değilken ok tuşları hiçbir şey yapmaz.

Spawner içinde: durum Playing değilken hiçbir şey oluşturma.

Play'e bas, çarpış ve yeniden koş, ardından Check'e bas.

Kendin dene

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

Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler