Menu
CoddyTech

En İyi Koşu

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

Endless Runner'ın son adımı: en iyi koşu, en yüksek skor gibi PlayerPrefs'te tutulur; böylece oyunu yeniden çalıştırınca ve oyundan çıkınca da kaybolmaz.

challenge icon

Görev

Orta

En iyi koşuyu BestRun anahtarıyla kaydedin.

  1. private int best; ekleyin. Start() içinde, PlayerPrefs.GetInt("BestRun", 0) ile yükleyin ve bestText içinde "Best: " + best + " m" gösterin.
  2. GameOver() işlevinin sonunda, Mathf.FloorToInt(distance) değeri best değerini geçtiğinde, bunu kaydedin, gösterin ve newBestText.SetActive(true); çağrısını yapın.

“Oyna” düğmesine basın, bir en iyi skor belirleyin, ardından bu skoru geçin: “New best!” görünür. Sonra “Kontrol et” düğmesine basın.

Kendin dene

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;
    public TMP_Text bestText;
    public GameObject newBestText;
    private float distance;

    void Awake()
    {
        Instance = this;
    }

    void Start()
    {
        restartButton.onClick.AddListener(Restart);
    }

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

    void Restart()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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

Kendi başına pratik yap: Unity playground