Unity'de ScriptableObject kullanırken veri kaydetmek

Selamlar Teknoseyir ahalisi,

Bugün, şipşak bir proje için kod yazarken scriptable objeleri kullanıyordum. Bu kullanım esnasında, özel editör penceresi (Custom Inspector) yazarak, scriptable object'in özelliklerini buradan değiştirip içerisindeki listeye direkt erişmemeye çalıştım. (Kodun karışmaması ve OOP yapısına daha uyduğunu düşündüğüm için) Ancak şunu gördüm ki, scriptable obje'nin içinde, listeyi manipüle eden metodları çağırıp onlar aracılığıyla listeyi düzenlediğimde veriler kaydolmuyorlardı.

Unity'de scriptable object'e direkt olarak erişmek için kullandığım yöntem

Scriptable Object'in metoduna erişerek veri ekleme yöntemi

Bunun sonrasında, listeyi public yapıp, Custom Inspector kodum üzerinden direkt olarak listeye erişip düzenledim. Böyle deneyince kaydoldu ama üstte bahsettiğim sebeplerden ötürü, bu yöntemi kullanmak istemiyordum. Sonrasında biraz araştırıp, birkaç farklı yere sorduktan sonra listeye [SerializeField] attribute'ü eklemem gerektiğini öğrendim.

Bunun sonucunda Scriptable Object'in içindeki metod a erişerek onun üzerinden listeyi değiştirmeyi başardım. Eğer olur da benzer bir kayıt sorunuyla karşılaşırsanız, bu kısa blog umarım işinizi görür ve sorununuzu çözer. #Unity

BeğenFavori PaylaşYorum yap
Tüm blog yazılarını gör