Tekrar: Başarım Açılır Penceresi
Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 14 / 50.
Görev
KolayBahçenin etrafına madeni paralar dağılmış ve ok tuşları Player'ı hareket ettiriyor (Player.cs, hazır). Oyuna ekranda beliren başarımlar ekle. Üç betik yaz; sahne zaten alanlarını birbirine bağlamış ve Achievements'ın On Unlocked (String) listesini HUD'daki AchievementPopup.Show'a bağlamış.
Collector(Player üzerinde), dokunduğuCoinetiketli her nesneyi toplar, nesneyi kaldırır ve yeni toplamı bir int alan genel C# olayıOnCoinsChangedile bildirir. Başarımlarla ilgili hiçbir şey bilmez.Achievements, yalnızca etkin olduğu sıradacollector'ını dinler. 1 madeni paradaFirst Coin, 3'tePocket Moneyve 6'daCoin Hoarderbaşarımını açar. Her açılma, başlığı (bir string) ileten UnityEvent alanıonUnlocked'ı çağırır.AchievementPopup.Show(string title),panel'i gösterir vetitleText'teUnlocked: First Coinyazar; ardındanshowTime(2) saniye sonra paneli gizler. Panel açıkken Show çağrılırsa yeni başlık gösterilir ve 2 saniyelik süre yeniden başlar.
Play'e bas, altı madeni paranın hepsini topla, ardından Check'e bas.
Kendin dene
using UnityEngine;
public class Achievements : MonoBehaviour
{
public Collector collector;
}
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: FindNearest3Olaylar
Unity'de C# OlaylarıOnEnable'da Abone OlmaUnityEvent AlanlarıOlaylar Arayüzü YönlendirirTekrar: Başarım Açılır Penceresi