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]); } }
protected override void Awake() { base.Awake(); if (mLanguageId != 0) { LanguageConfigSheet sheet = LanguageConfigSheet.Get(mLanguageId); if (sheet != null) { text = sheet.Text; } } }
private void WriteExcel(Dictionary <uint, LanguageConfigSheet> sheets) { Dictionary <uint, LanguageConfigSheet> dic1Asc = sheets.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value); //检出输出目录 if (!Directory.Exists(cache.configOutputFolder)) { Directory.CreateDirectory(cache.configOutputFolder); } if (!Directory.Exists(cache.serializerOutputFolder)) { Directory.CreateDirectory(cache.serializerOutputFolder); } FileInfo file = new FileInfo(cache.sourceFolder + "/LanguageConfig.xlsx"); ExcelPackage package = null; ExcelWorksheet excelData = null; if (!file.Exists) { package = new ExcelPackage(); excelData = package.Workbook.Worksheets.Add("Language"); package.SaveAs(file); } else { package = new ExcelPackage(file); excelData = package.Workbook.Worksheets[1]; } WriteConfigText(excelData); int row = 4; List <uint> sheetKeyList = new List <uint>(dic1Asc.Keys); for (int i = 0; i < sheetKeyList.Count; i++) { LanguageConfigSheet sheet = dic1Asc[sheetKeyList[i]]; excelData.Cells[row, 1].Value = sheet.LanguageID; excelData.Cells[row, 2].Value = sheet.Text; row++; } package.Save(); Debug.Log("导出language表成功"); }
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); }
private void Awake() { mCanvas = GameObject.Find("Canvas").GetComponent <Canvas>(); if (mCanvas == null) { Debug.LogError("未找到Canvas"); return; } configSet = Resources.Load <SerializableSet>("Config/SerializableSet"); Deserializer.Deserialize(configSet); Resources.UnloadUnusedAssets(); Debug.Log(LanguageConfigSheet.Get(20).Text); GameObject go = GameObject.Instantiate(Resources.Load <GameObject>("UIPrefab/UIPanel")); go.transform.SetParent(mCanvas.transform, false); }