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.
Görev
OrtaEn iyi koşuyu BestRun anahtarıyla kaydedin.
private int best;ekleyin.Start()içinde,PlayerPrefs.GetInt("BestRun", 0)ile yükleyin vebestTextiçinde"Best: " + best + " m"gösterin.GameOver()işlevinin sonunda,Mathf.FloorToInt(distance)değeribestdeğerini geçtiğinde, bunu kaydedin, gösterin venewBestText.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);
}
}
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
1Ekrandaki Metinler
Canvas ve MetinSkoru GösterSayıları BiçimlendirGeri Sayım ZamanlayıcısıTekrar: Hız Göstergesi2Düğmeler ve Ekranlar
Düğmeler ve onClickLambda İfadeleriInspector'da Bağlantı KurmaPanelleri Açma ve KapamaCan ÇubuklarıTekrar: Yükseltme Mağazası5PlayerPrefs ile Kaydetme
Bir Sayı KaydetmeVarsayılan Değerle YüklemeEn Yüksek SkorAyarları KaydetmeTekrar: Bankadaki Paralar3Oyun Yöneticisi
Oyunu Tek Bir Betik YönetiyorSingletonOyun DurumlarıDuruma Göre GeçişÖzet: Tur Yöneticisi6Proje: Sonsuz Koşucu
Üç ŞeritÖnümüzde EngellerKendi başına pratik yap: Unity playground