/// <summary> /// ボスのパラメータを格納 /// </summary> private static void BossData(CharaDataSet charaDataSet, int rowIdx, ICell valueCell) { BossData bossData = new BossData(); if (valueCell.CellType == CellType.String) { string posCsv = valueCell.StringCellValue; if (!posCsv.Contains(",")) { return; } string[] posArray = posCsv.Split(','); string posx = posArray[0].Replace("(", ""); string posy = posArray[1].Replace(")", ""); float x = float.Parse(posx); float y = float.Parse(posy); Vector2 pos = new Vector2(x, y); bossData.translate_positions.Add(pos); } else { bossData.param = (float)valueCell.NumericCellValue; } charaDataSet.BossAdd(bossData); }
/// <summary> /// プレイヤーのパラメータを格納 /// </summary> private static void PlayerData(CharaDataSet charaDataSet, int rowIdx, ICell valueCell) { PlayerData charaData = new PlayerData(); charaData.param = (float)valueCell.NumericCellValue; charaDataSet.PlayerAdd(charaData); }
static CharaData AddToAsset(CharaDataSet _dataSet, Transform _chara) { CharaData data = new CharaData(); data.m_name = _chara.name; data.m_hp = Random.Range(0, 100); data.m_position = new Vector3(_chara.position.x, _chara.position.y, _chara.position.z); _dataSet.list.Add(data); return data; }
/// <summary> /// 指定したデータを設定 /// </summary> /// <param name="i"></param> /// <param name="rowIdx"></param> /// <param name="valueCell"></param> /// <returns></returns> private static void SetData(int i, CharaDataSet charaDataSet, int rowIdx, ICell valueCell) { switch (i) { case 0: PlayerData(charaDataSet, rowIdx, valueCell); break; case 1: BossData(charaDataSet, rowIdx, valueCell); break; } }
public static void Import(string file, int num) { if (file.EndsWith(".xls")) { string asset_path = "Assets/Data/Asset/" + Path.GetFileNameWithoutExtension(file) + ".asset"; using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { CharaDataSet charaDataSet = AssetDatabase.LoadAssetAtPath(asset_path, typeof(CharaDataSet)) as CharaDataSet; if (charaDataSet == null) { charaDataSet = ScriptableObject.CreateInstance <CharaDataSet>(); AssetDatabase.CreateAsset(charaDataSet, asset_path); } charaDataSet.Clear(); IWorkbook book = new HSSFWorkbook(fs); int sheetNum = book.NumberOfSheets; for (int i = 0; i < sheetNum; ++i) { ISheet sheet = book.GetSheetAt(i); int firstRow = sheet.FirstRowNum; int lastRow = sheet.LastRowNum; for (int rowIdx = firstRow + 1; rowIdx <= lastRow; ++rowIdx) { IRow row = sheet.GetRow(rowIdx); if (row == null) { continue; } int cellIdx = 2; ICell valueCell = row.GetCell(cellIdx); SetData(num, charaDataSet, rowIdx, valueCell); } } //データ更新 ScriptableObject obj = AssetDatabase.LoadAssetAtPath(asset_path, typeof(ScriptableObject)) as ScriptableObject; EditorUtility.SetDirty(obj); } } }