Hayatta Kal
Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 47 / 50.
Görev
OrtaSon adım: oyun sona erer ve en iyi koşu saklanır. Önceki derslerdeki her şeyi koru. Canvas'ta gizli bir GameOverPanel bulunur; içinde ResultText, BestText ve Fight again etiketi taşıyan bir RestartButton vardır. GameManager nesnesinde ise GameManager betiğin bulunur; Inspector'da hero, spawner, gameOverPanel, resultText, bestText ve restartButton ayarlanmıştır.
Hero, canı 0'a ulaştığında kendini devre dışı bıraktıktan sonra tetiklenenpublic event Action Diedolayını alır.GameManager.csdosyasına,public int wavevepublic int killsalanlarına sahip[System.Serializable]birBestRunsınıfı ekle.GameManager, kahramanınDiedolayını ve bu koşudaki öldürmeleri sayanEnemy.Diedolayını dinler:OnEnableiçinde abone ol,OnDisableiçinde abonelikten çık.Startiçinde, dosya mevcutsaApplication.persistentDataPathiçindekibest.jsondosyasından en iyi koşuyuJsonUtilityile yükler, paneli gizler verestartButtondüğmesinin oyunu yeniden başlatmasını sağlar.- Kahraman öldüğünde oyunu durdur (
Time.timeScale0). Koşu sonucu, spawner'ınWavedeğeri ve öldürme sayısıdır. Daha yüksek bir dalgaya ulaştıysa veya aynı dalgada daha fazla öldürme yaptıysa yeni bir rekor olur: bu durumda yeni sonucu en iyi olarak kaydet veJsonUtility.ToJsonilebest.jsondosyasına yaz. Koşu sonucunuresultTextiçindeWave 2, 7 killsbiçiminde, en iyi sonucu isebestTextiçindeBest: wave 3, 12 killsbiçiminde göster, ardından paneli göster. - Yeniden başlatma, zaman ölçeğini tekrar 1 yapar ve sahneyi yeniden yükler.
Play düğmesine bas ve düşene kadar savaş; ardından kendi rekorunu geçmeye çalış. Sonra Check düğmesine bas.
Kendin dene
using UnityEngine;
public class GameManager : MonoBehaviour
{
// Daha sonraki bir derste burası doldurulacak: koşunun bitişi ve en iyi koşu.
}
Unity'de Oyun Mimarisi bölümündeki tüm dersler
1Hiyerarşiler Değil, Bileşenler
Küçük BileşenlerTemel Bir Düşman BetiğiSoyut BileşenlerBirlikte Çalışan BileşenlerÖzet: Modüler Taret4Serileştirilmiş Veriler
Serileştirilebilir SınıflarInspector'da ListelerInspector'da Enum'larÖzet: Ganimet Tablosu7Durum Makineleri
Sınıflar Olarak DurumlarBir Durum MakinesiGeçişlerDüşmanların Yapay ZekâsıTekrar: Kapı Durumları10Proje: Arena Hayatta Kalma
KahramanDüşman Türleri5ScriptableObjects
Veri VarlıklarıSilah İstatistikleriPaylaşılan AyarlarVeri Olarak DalgalarTekrar: Eşya Veritabanı8Yeniden Kullanılabilir Kod
Genişletme MetotlarıGeneric SingletonGeneric YardımcılarTekrar: FindNearest