首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Unity3d和C#中的另一个脚本访问在单例类中创建的列表

如何从Unity3d和C#中的另一个脚本访问在单例类中创建的列表
EN

Stack Overflow用户
提问于 2016-03-29 18:55:31
回答 1查看 516关注 0票数 1

我正在用Unity3d编写一个RPG。我已经成功地重构了运行SQL数据库的代码,并将其转换为单例模式。gameobject是在运行时创建的。

在每个表中,我根据其属性脚本创建一个列表;我在那里创建它,因为它访问数据库。另一个脚本是附加到顶部面板,我想显示字符的名字和统计,但我有困难的访问名单。

代码语言:javascript
复制
PlayerDatabaseManager PDM; 

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

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

我搞不懂该把什么放哪儿。个人需要是databasemanager型还是personal型?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-29 19:11:27

我觉得你的结构有点混乱。如果PlayerDatabaseManager是一个单例,那么您不应该从另一个组件调用LoadPersonal --它应该在需要时处理它自己,以便很好地封装它。

此外,如果PDM已经类型为PlayerDatabaseManager,则不需要在其上调用GetComponent<PlayerDatabaseManager

你想要的是:

1)在PlayerDatabaseManager Awake()

代码语言:javascript
复制
Instance = this;

2)在访问信息的其他类中,例如Personal中的名称

代码语言:javascript
复制
void Start() {
    Name = PlayerDatabaseManager.Instance.Personal.Name()
}

3)为PlayerDatabaseManager设置执行顺序,以便它在其他脚本之前运行,或者确保它在第一个场景中加载到任何其他具有访问它的脚本的游戏对象之前。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36292815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档