private void LoadFaction(string fold) { string filePath = fold + "/faction.csv"; factionFile = new CSVFile(); factionFile.ReadCsv(filePath); dic_Faction.Clear(); foreach (string[] arr in factionFile.valueLines) { if (arr.Length != 7) { LogTool.LogError("faction arr.length" + arr.Length); continue; } DFaction faction = new DFaction(); faction.id = int.Parse(arr[0]); faction.alias = arr[1]; faction.shortdesc = arr[2]; faction.fulldesc = arr[3]; faction.id_leadperson = int.Parse(arr[4]); faction.idlist_section = CommonUtil.StringToListInt(arr[5], '#'); //只保存一级子类 foreach (int sectionid in faction.idlist_section) //子对象的一级父类在这初始化 { if (sectionid != -1 && dic_Section.ContainsKey(sectionid)) { DSection section = dic_Section[sectionid]; section.parentid_faction = faction.id; } } faction.idlist_wbuilding = CommonUtil.StringToListInt(arr[6], '#'); dic_Faction.Add(faction.id, faction); EntityMgr.Instacne.AddFactionFromData(faction.id); } }
public Faction AddFactionFromData(int factionid) { if (!DataMgr.Instacne.dic_Faction.ContainsKey(factionid)) { LogTool.LogError("DataMgr not have id " + factionid); return(null); } DFaction dfaction = DataMgr.Instacne.dic_Faction[factionid]; GameObject go = new GameObject(); go.transform.SetParent(factionEntityParent); Faction faction = go.AddComponent <Faction>(); faction.Data = dfaction; dic_Faction.Add(faction.ID, faction); if (faction.ID == DataMgr.Instacne.selSaveData.id_playerFaction) { faction.isPlayer = true; } return(faction); }