C# 如何从Unity3d和C中的另一个脚本访问在singleton类中创建的列表#
我正在Unity3d中制作一个RPG。我已经成功地将代码重构为运行SQL数据库并转换为单例模式。C# 如何从Unity3d和C中的另一个脚本访问在singleton类中创建的列表#,c#,list,sqlite,unity3d,C#,List,Sqlite,Unity3d,我正在Unity3d中制作一个RPG。我已经成功地将代码重构为运行SQL数据库并转换为单例模式。gameobject是在运行时创建的 在每个表中,我根据其属性脚本创建一个列表;我在那里创建它是因为它访问数据库。另一个脚本附加到顶部面板,我想在那里显示角色的名称和统计信息,但我无法访问列表 PlayerDatabaseManager PDM; void Awake() { PlayerDatabaseManager.Instance.LoadPersonal(); } // Use
gameobject
是在运行时创建的
在每个表中,我根据其属性脚本创建一个列表;我在那里创建它是因为它访问数据库。另一个脚本附加到顶部面板,我想在那里显示角色的名称和统计信息,但我无法访问列表
PlayerDatabaseManager PDM;
void Awake()
{
PlayerDatabaseManager.Instance.LoadPersonal();
}
// Use this for initialization
void Start ()
{
PDM.GetComponent<PlayerDatabaseManager>.Personal();
Personal = PDM.Personal.Name();
}
PlayerDatabaseManager PDM;
无效唤醒()
{
PlayerDatabaseManager.Instance.LoadPersonal();
}
//用于初始化
无效开始()
{
PDM.GetComponent.Personal();
Personal=PDM.Personal.Name();
}
我不知道该把什么放在哪里。personal是否需要属于
databasemanager类型
或personal类型
?我认为您的结构有点混乱。如果PlayerDatabaseManager
是一个单例,那么您不应该从不同的组件调用LoadPersonal
——它应该在需要时自行处理,以便很好地封装
此外,如果
PDM
已经是PlayerDatabaseManager
类型,则无需调用getComponent如果您的“单例”是单行为,它将永远不会工作,Ken。只需遵循这里解释的三个简单要点。。。非常感谢戴夫!
Instance = this;
void Start() {
Name = PlayerDatabaseManager.Instance.Personal.Name()
}