Singleton ScriptableObject #MadeWithUnity

Unity’nin Script Edilebilir Nesnelerinin gücüyle birleşen Singleton Tasarım Modeli.

1- Singleton? bu nedir?

Singleton, bu sınıfın yalnızca 1 örneğinin hiçbir zaman olmayacağını garanti eden bir yol oluşturan bir sınıfın intantiasyonunu kısıtlayan bir Tasarım Modeli yaratın.

– Bir sınıfın yalnızca bir örneği olduğundan emin olun ve ona küresel bir erişim noktası sağlayın.

– Kapsüllenmiş “tam zamanında başlatma” veya “ilk kullanımda başlatma”.

2- ScriptableObject oluşturmanın ne olduğunu anlayın:

Unity el kitabına / belgelerine göre scriptableObject şu şekilde tanımlanır:

komut dosyası örneklerinden bağımsız olarak büyük miktarda paylaşılan veriyi depolamanıza olanak tanıyan sınıf.

Ayrıca Birliğe Göre

ScriptableObject’i kullanmak için amaçlanan kullanım örneği, değerlerin kopyalarından kaçınarak bellek kullanımını azaltmaktır, ancak bunu takılabilir veri kümelerini tanımlamak için de kullanabilirsiniz.

Yani .. bir dosya kaydetme yapılandırması, öğe veritabanı, npc davranışı veya sadece diyalog veya envanter kullanabiliriz.

Örneğimde tek oyunculu oyunum için t bir envanter oluşturmak istediğimi hayal et. Oyunumun 1’den fazla envanter oluşturmasına ihtiyacım yok ve yalnızca 1 PlayerInventory örneğine sahip olacağımdan emin olmak istiyorum, bu durumda ScriptableObject ile birlikte tekli tasarım desenini kullanacağım!

Ancak, önce SingletonScriptableObject sınıfını oluşturmaya başlamak için, işte kod:

Umarım içinde ne olduğunu yakında anlarsınız, şimdilik her satırı daha iyi anlamak için kodun kendisine ilişkin yorumlar yapacağım.

Şimdi her zaman olduğu gibi bir scriptableObject komut dosyası oluşturmamız gerekiyor, ancak scriptableObject yerine yukarıdaki gibi SingletonScriptableObject kullanacağız:

Şimdi bunun bir örneğini oluşturmamız gerekiyor

Not: Tüm projede yalnızca bir dosyaya sahip olacağınızdan emin olmak için Proje Penceresi içindeki arama kutusunda t: PlayerInventory’yi kullandığınızdan emin olmak için tek bir .asset dosyası oluşturmaya zorlamak için bir yol oluşturmadım.

şimdi PlayerInventory.Asset dosyasına biraz değer katalım.

Oyuncu Envanteri Varlığım şöyle görünüyor.

şimdi onu kullanacak komut dosyasını oluşturalım.

Şimdi her şeyin yolunda gidip gitmediğini görmek için test edelim.

PlayerInventoryReader’ı boş bir sahnede kameraya ekleyin ve oynat’a basın ve her şeyin bir sihir gibi çalışıp çalışmadığını görmek için Konsol’a göz atın, denetçideki PlayerInventory Varlık dosyasına yapılan referansı bile görebileceksiniz.


Pek çok şey inşa edebileceğimizi görebiliyor musunuz, bu Singleton Tasarım Modelini Sound Manager, Global Configuration ve diğer şeyler gibi birçok şey için ScriptableObject sorumluları oluşturmak için kullanıyorum… Umarım beğenirsiniz.

Sonraki: ScriptableObject Değişkenleri (Çok Yakında).