我正在用Unity3d编写一个RPG。我已经成功地重构了运行SQL数据库的代码,并将其转换为单例模式。gameobject是在运行时创建的。
在每个表中,我根据其属性脚本创建一个列表;我在那里创建它,因为它访问数据库。另一个脚本是附加到顶部面板,我想显示字符的名字和统计,但我有困难的访问名单。
PlayerDatabaseManager PDM;
void Awake()
{
PlayerDatabaseManager.Instance.LoadPersonal();
}
// Use this for initialization
void Start ()
{
PDM.GetComponent<PlayerDatabaseManager>.Personal();
Personal = PDM.Personal.Name();
}我搞不懂该把什么放哪儿。个人需要是databasemanager型还是personal型?
发布于 2016-03-29 19:11:27
我觉得你的结构有点混乱。如果PlayerDatabaseManager是一个单例,那么您不应该从另一个组件调用LoadPersonal --它应该在需要时处理它自己,以便很好地封装它。
此外,如果PDM已经类型为PlayerDatabaseManager,则不需要在其上调用GetComponent<PlayerDatabaseManager。
你想要的是:
1)在PlayerDatabaseManager Awake()中
Instance = this;2)在访问信息的其他类中,例如Personal中的名称
void Start() {
Name = PlayerDatabaseManager.Instance.Personal.Name()
}3)为PlayerDatabaseManager设置执行顺序,以便它在其他脚本之前运行,或者确保它在第一个场景中加载到任何其他具有访问它的脚本的游戏对象之前。
https://stackoverflow.com/questions/36292815
复制相似问题