Bölümü Yeniden Başlatma
Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 18 / 60.
Bir seviyeyi sıfırlamanın en hızlı yolu onu yeniden yüklemektir. SceneManager.GetActiveScene(), şu anda açık olan sahneyi döndürür; name (veya buildIndex) değeri ise LoadScene'in aldığı değerdir. Oyun bitti panelindeki bu Yeniden Başlat düğmesi şunu çağırır:
public void Restart()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}Unity, açık sahneyi yok eder ve sahne dosyasından yeniden oluşturur. Her nesne, oyuncunun devirdiği bir sandık da dahil olmak üzere, sahnenin yerleştirdiği konuma geri döner; her alan Inspector'daki değerini yeniden alır ve Awake ile Start yeniden çalışır. Nesneleri tek tek eski hâline getirecek bir kod yazmak gerekmez. Düğme, "Level3" gibi bir ad yerine etkin sahneyi istediği için aynı betik, yerleştirildiği her seviyeyi yeniden başlatır.
static bir alan sahnenin parçası değildir: sınıfa aittir, bu nedenle yeniden yükleme onu olduğu gibi bırakır. private static float bestTime; en iyi süreyi yeniden başlatmalar boyunca korurken, normal bir private float time; yeni sahneyle birlikte yeniden 0'dan başlar. GameManager.Instance de statiktir: yeniden yüklemeden sonra, yenisinin Awake yöntemi onu ayarlayana kadar yok edilmiş GameManager'ı gösterir.
Görev
KolayDüşme, oyuncunun bulunduğu bölümü yeniden başlatmalı ve düşme sayısını artırmalıdır.
using UnityEngine.SceneManagement;ekle ve sayacıprivate static int falls;olarak değiştir; böylece yeniden yükleme sayacı korur.Update()içinde,player.position.y < fallYolduğundafalls++;işlemini yap veSceneManager.GetActiveScene().namedeğerini yükle.
“Oyna” düğmesine bas ve her iki bölümde de bir kenardan yürü: önce Falls: 1, ardından Falls: 2. Sonra “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
using TMPro;
public class LevelRestart : MonoBehaviour
{
public Transform player;
public TMP_Text fallsText;
public float fallY = -3f;
private int falls;
void Start()
{
fallsText.text = "Falls: " + falls;
}
void Update()
{
// fallY değerinin altına düştüğünde: düşüşü say ve oyuncunun bulunduğu bölümü yeniden başlat
}
}
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östergesi4Sahneler ve Bölümler
Bir Sahne YüklemeBölümü Yeniden BaşlatmaSonraki BölümSahneler Arasında SaklamaTekrar: Bölüm Seçimi2Düğ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 ParalarKendi başına pratik yap: Unity playground