Unity'nin denetçisinde anahtar / değer çiftlerini almanın hızlı bir yolu, serileştirilebilir bir giriş sınıfı tanımlamak ve ardından bunların bir dizisini veya List <> öğesini kullanmaktır. Örneğin...
public class SpellAnimationMap : ScriptableObject
{
[System.Serializable]
public class SpellAnimationEntry
{
public Spell spell;
public AnimationClip animation;
}
public SpellAnimationEntry[] spellAnimations;
}
Otomatik olarak, bu, denetçide, özel bir denetçi yazmanıza gerek kalmadan anahtarı ve değeri girebileceğiniz yeniden boyutlandırılabilir bir liste verecektir.
Sonuç şuna benzer:
(Bir numara: Serileştirilmiş giriş sınıfı bir "Ad" alanı içeriyorsa, "Öğe 0" başlıkları yerine o dize görüntülenir. Verimli bir şekilde gezinmek istediğiniz daha karmaşık verileriniz varsa kullanışlıdır.)
Bunu bir ScriptableObject yapmak, aynı animasyon setine ihtiyaç duyan varlık türleri / örnekler arasında paylaşılan bir Varlık olarak ele almanızı ve her biri için listeyi çoğaltmanın yükünü ortadan kaldırmanızı sağlar. (Diğer sınıflar, Unity'de örnek başına serileştirilme eğilimindedir). Bu rotaya gitmek için, Varlıklar klasörünüzde bunların örneklerini oluşturmanıza olanak tanıyan küçük bir düzenleyici komut dosyası eklemeniz gerekir .
Düzenleme: şimdi daha da kolay - bu özelliği ScriptableObject öğenizin üzerine ekleyebilirsiniz :
[CreateAssetMenu(fileName = "fileName.asset", menuName = "Some Folder/Menu Label")]
Bu ScriptableObject öğesini Oluştur menünüze koyar, şöyle:
İsteğe bağlı olarak diziyi denetçide görünecek şekilde özel ve seri hale getirebilirsiniz, ancak istemcilerin daha verimli aramalar için tüketmesi için herkese açık bir Sözlük (veya genel GetAnimation (Yazım büyüsü) yöntemiyle özel sözlük) ekleyebilirsiniz. OnEnable () yönteminde, SpellAnimationMap, bir kez daha tüm istemci örnekleri arasında avantajı paylaşarak bu sözlüğü bir kez oluşturmak için denetçisinin doldurduğu dizisini yineleyebilir. (Öğe ilk oluşturulduğunda OnEnable () öğesinin de düzenleyicide çağrıldığını unutmayın; bu nedenle, okumaya çalışmadan önce dizinizin boş olmadığını kontrol ettiğinizden emin olun)
Son olarak, bu giriş veri tipine ihtiyacınız olduğu kadar ekleyebilirsiniz. Örneğin, prefabrik veya büyü anahtarına bağlamak istediğiniz herhangi bir sayıda başka veri parçasını da içerebilir.
Sözlük <,> alanlarını doğrudan doldurmak için özel müfettişler yazmak da mümkündür, ancak elde ettiğim izlenim, sorunsuz çalışmanın telaşlı olmasıdır.