Özet: Tur Yöneticisi
Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 16 / 60.
Bu bölüm oyuna bir yönetici verdi: diğerlerinin bir alan olmadan eriştiği bir tekil nesne ve bu nesnenin geçiş yaptığı durumlar. Tur yöneticisi ikisini de kullanır.
Görev
KolayMadeni para toplama bölümünü tamamla; SetState yazıldı.
Awake()içinde ayarlananpublic static RoundManager Instance;ekle.Update()içindestateüzerinde switch kullan: Ready, Space tuşunu bekler; Playing,timeLeftdeğerini geri sayar, ardından bir sonraki Ready durumuna geçer veya son turdan sonra Finished durumuna geçer.public bool TakeCoin(): yalnızca Playing sırasında say,Coins: 2değerini göster ve true döndür.Coin.cs, Player'ın dokunduğu ve sayılan bir madeni parayı yok eder.
Üç turun tamamında “Oyna” düğmesine bas. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
using TMPro;
public enum RoundState { Ready, Playing, Finished }
public class RoundManager : MonoBehaviour
{
// singleton: Awake() içinde ayarlanan statik bir Instance
public GameObject readyPanel;
public GameObject playPanel;
public GameObject finishedPanel;
public TMP_Text roundText;
public TMP_Text coinsText;
public TMP_Text finalText;
public int rounds = 3;
public float roundTime = 4f;
private RoundState state;
private int round = 1;
private int coins;
private float timeLeft;
void Start()
{
SetState(RoundState.Ready);
}
void Update()
{
// state değerine göre dallan: Ready, Space tuşunu bekler; Playing, kalan süreyi geri sayar
}
void SetState(RoundState next)
{
state = next;
readyPanel.SetActive(next == RoundState.Ready);
playPanel.SetActive(next == RoundState.Playing);
finishedPanel.SetActive(next == RoundState.Finished);
if (next == RoundState.Ready) roundText.text = "Round " + round;
if (next == RoundState.Playing) timeLeft = roundTime;
if (next == RoundState.Finished) finalText.text = "Coins: " + coins;
}
// TakeCoin(): bir coin yalnızca Playing sırasında sayılır
}
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öneticisiKendi başına pratik yap: Unity playground