void convertToEnemyBase(TempEnemyBase.Param n, EnemyBase enemyBase) { enemyBase.ID = n.ID; enemyBase.Name = n.Name; enemyBase.MaxHP = n.MaxHP; enemyBase.MaxSP = n.MaxSP; enemyBase.Atk = n.Atk; enemyBase.Def = n.Def; enemyBase.Spd = n.Spd; enemyBase.MoneyDrop = n.MoneyDrop; enemyBase.Money = n.Money; enemyBase.NormalDrop = n.NormalDrop; enemyBase.NormalItemID = n.NormalDrop; enemyBase.RareDrop = n.RareDrop; enemyBase.RareItemID = n.RareItem; if (EnemyBase.ActionType.TryParse(n.ActType, out enemyBase.Act)) { enemyBase.Act = EnemyBase.ActionType.Normal; } if (EnemyBase.RankType.TryParse(n.RankType, out enemyBase.Rank)) { enemyBase.Rank = EnemyBase.RankType.Common; } }
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { foreach (string asset in importedAssets) { if (!filePath.Equals(asset)) { continue; } TempEnemyBase data = (TempEnemyBase)AssetDatabase.LoadAssetAtPath(exportPath, typeof(TempEnemyBase)); if (data == null) { data = ScriptableObject.CreateInstance <TempEnemyBase> (); AssetDatabase.CreateAsset((ScriptableObject)data, exportPath); data.hideFlags = HideFlags.NotEditable; } data.sheets.Clear(); using (FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { IWorkbook book = null; if (Path.GetExtension(filePath) == ".xls") { book = new HSSFWorkbook(stream); } else { book = new XSSFWorkbook(stream); } foreach (string sheetName in sheetNames) { ISheet sheet = book.GetSheet(sheetName); if (sheet == null) { Debug.LogError("[QuestData] sheet not found:" + sheetName); continue; } TempEnemyBase.Sheet s = new TempEnemyBase.Sheet(); s.name = sheetName; for (int i = 1; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); ICell cell = null; TempEnemyBase.Param p = new TempEnemyBase.Param(); cell = row.GetCell(0); p.ID = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(1); p.Name = (cell == null ? "" : cell.StringCellValue); cell = row.GetCell(2); p.MaxHP = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(3); p.MaxSP = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(4); p.Atk = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(5); p.Def = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(6); p.Spd = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(7); p.Exp = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(8); p.NextExp = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(9); p.MoneyDrop = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(10); p.Money = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(11); p.NormalDrop = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(12); p.NormalItem = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(13); p.RareDrop = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(14); p.RareItem = (int)(cell == null ? 0 : cell.NumericCellValue); cell = row.GetCell(15); p.ActType = (cell == null ? "" : cell.StringCellValue); cell = row.GetCell(16); p.RankType = (cell == null ? "" : cell.StringCellValue); s.list.Add(p); } data.sheets.Add(s); } } ScriptableObject obj = AssetDatabase.LoadAssetAtPath(exportPath, typeof(ScriptableObject)) as ScriptableObject; EditorUtility.SetDirty(obj); } }