public static void Deserialize(SerializableSet set) { for (int i = 0, l = set.LanguageConfigs.Length; i < l; i++) { LanguageConfigSheet.GetDictionary().Add(set.LanguageConfigs[i].LanguageID, set.LanguageConfigs[i]); } }
public void WriteLanguageConfigToExcel() { //先清除之前的 LanguageConfigSheet.GetDictionary().Clear(); //加载所有数据 然后从内存写到excel SerializableSet configSet = Resources.Load <SerializableSet>("Config/SerializableSet"); Deserializer.Deserialize(configSet); Resources.UnloadUnusedAssets(); Dictionary <uint, LanguageConfigSheet> sheets = LanguageConfigSheet.GetDictionary(); //找到所有的LanguageText GameObject[] gameObjects = Resources.LoadAll <GameObject>(uiPrefabPath); for (int i = 0; i < gameObjects.Length; i++) { LanguageText[] languageTexts = gameObjects[i].transform.GetComponentsInChildren <LanguageText>(); for (int j = 0; j < languageTexts.Length; j++) { LanguageText languageText = languageTexts[j]; if (languageText.mLanguageId == 0) { continue; } LanguageConfigSheet sheet; if (sheets.TryGetValue(languageText.mLanguageId, out sheet)) { sheet.LanguageID = languageText.mLanguageId; sheet.Text = languageText.text; sheets[languageText.mLanguageId] = sheet; } else { sheet = new LanguageConfigSheet(); sheet.LanguageID = languageText.mLanguageId; sheet.Text = languageText.text; sheets.Add(sheet.LanguageID, sheet); } } } WriteExcel(sheets); }