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

C# 如何从Unity3d和C中的另一个脚本访问在singleton类中创建的列表#,c#,list,sqlite,unity3d,C#,List,Sqlite,Unity3d,我正在Unity3d中制作一个RPG。我已经成功地将代码重构为运行SQL数据库并转换为单例模式。gameobject是在运行时创建的 在每个表中,我根据其属性脚本创建一个列表;我在那里创建它是因为它访问数据库。另一个脚本附加到顶部面板,我想在那里显示角色的名称和统计信息,但我无法访问列表 PlayerDatabaseManager PDM; void Awake() { PlayerDatabaseManager.Instance.LoadPersonal(); } // Use

我正在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();
}
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()
}