我正在尝试获得几个合作伙伴的几个项目的名称,但我想念一些东西。
这是脚本
这就是List的代码。
// JSON ---------------------------------------------
[System.Serializable]
public struct MyClassList
{
[System.Serializable]
public struct Partner
{
public int partner_id;
public string partner_name;
public string _partner_logo_ressource_link;
}
public List<Partner> partner;
[System.Serializable]
public struct Project
{
public int project_id;
public string project_name;
public string partner_partner_name;
public string type_type_name;
}
public List<Project> project;
public static MyClassList CreateFromJSON(string jsonString)
{
return JsonUtility.FromJson<MyClassList>(jsonString);
}
}
// --------------------------------------------------
以下是我试图获得价值的方式。
void InstantieMenuPartner()
{
for(int i = 0; i < _partnerList.partner.Count; i++)
{
GameObject _instance_partner_menu = Instantiate(_prefab_menu_project);
_instance_partner_menu.name = "Menu_Partner_"+_partnerList.partner[i].partner_name;
_instance_partner_menu.transform.SetParent(GameObject.Find("Menu_Project").transform, false);
// Instantie Button Project to Parent Menu Partner -------------------------------------------------------------------------------------------
for(int p = 0; p < _projectList.project.Count(a => a.partner_partner_name == _partnerList.partner[i].partner_name); p++)
{
GameObject _instance_project_button = Instantiate(_prefab_button_project);
Debug.Log(_projectList.project.Where(a => (a.partner_partner_name == _partnerList.partner[i].partner_name) && (a.project_name == _projectList.project[p].project_name)).Select(a => a.project_name).FirstOrDefault());
_instance_project_button.transform.SetParent(GameObject.Find("Menu_Partner_"+_partnerList.partner[i].partner_name).transform, false);
//Text _instance_project_button_text = _instance_project_button.GetComponentInChildren<Text>();
//_instance_project_button_text.text = _projectList.project[p].project_name;
}
// -------------------------------------------------------------------------------------------------------------------------------------------
_instance_partner_menu.SetActive(false);
}
}
Debug.Log部分是我遇到问题的地方。
要解释一下,我在数据库中有一个完整的合作伙伴列表,每个合作伙伴都有几个项目。
通过循环,我正在尝试为合作伙伴提供一个GameObject,并将项目设置为此GameObject的子项。
但我无法使其发挥作用。
答案 0 :(得分:0)
好的,我明白了。
将Debug.Log部分替换为:
Debug.Log(_projectList.project
.Where(a => a.partner_partner_name == _partnerList.partner[i].partner_name)
.Select(c => c.project_name)
.ElementAtOrDefault(p));
因此,只有一个条件,你得到合作伙伴的列表,然后我在列表中选择好变量,并使用ElementAt得到我的值。