2016-03-29 8 views
1

Unity3d'de bir RPG üzerinde çalışıyorum. SQL veritabanını ve singleton şablonunu çalıştırmak için kodu başarıyla yeniden onayladım. gameobject çalışma zamanında oluşturulur.Unity3d ve C# içinde başka bir komut dosyasından tek bir sınıfta oluşturulan listeler nasıl erişilir? #

Her tabloda, özellik betiğine dayalı bir liste oluşturuyorum; Veritabanına eriştiği için orada oluyorum. Diğer betik, karakterin adını ve istatistiklerini görüntülemek istediğim üst panele iliştirilmiş, ancak listeye erişirken sorun yaşıyorum.

PlayerDatabaseManager PDM; 

void Awake() 
{ 
    PlayerDatabaseManager.Instance.LoadPersonal(); 
} 

// Use this for initialization 
void Start() 
{ 
    PDM.GetComponent<PlayerDatabaseManager>.Personal(); 
    Personal = PDM.Personal.Name(); 
} 

Nereye koyacağımı karıştırıyorum. Kişisel databasemanager türünde veya personal tipinde mi olmalıdır?

+0

"singletons", MonoBehaviour ise, asla çalışmayacaktır, Ken. sadece burada anlatılan ** üç basit noktaları ** izleyin ... http://stackoverflow.com/a/35891919/294884 – Fattie

cevap

1

Yapınızın biraz karışık olduğunu düşünüyorum. PlayerDatabaseManager tekil ise, LoadPersonal'u farklı bir bileşenden aramamalısınız - iyi bir şekilde kapsüllenmiş olması gerektiğinde kendisiyle uğraşmalıdır. Ayrıca, PDM zaten PlayerDatabaseManager türünde ise, GetComponent<PlayerDatabaseManager üzerinde aramaya gerek yoktur.

1) Awake()PlayerDatabaseManager yılında:

Instance = this; 

2) bilgilere erişmek diğer sınıfların, örneğin Personal

void Start() { 
    Name = PlayerDatabaseManager.Instance.Personal.Name() 
} 

ad

Ben ne istiyorsun olduğunu düşünüyorum 3) PlayerDatabaseManager için yürütme sırasını ayarlayın, böylece diğer komutlardan önce çalışır veya ilk sahnedeki yüklendiğinden emin olun. Buna erişecek komut dosyaları ile diğer herhangi bir gameobjects.

+0

Çok teşekkürler Dave! –

İlgili konular