using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; using UnityEngine; using UnityEngine.Networking; namespace WildAttack { /// /// 怪物配置结构体 /// public struct MonsterData { public List weponWeight; public int num; public int speed; } /// /// monster.csv /// public class MonsterModule : Singleton, IModule { #region Member private Dictionary monsterDataDic; #endregion #region Override public IEnumerator LoadCSV(string fileName, Action callback) { string sPath = CSVUtils.GetStreamingAssetPath() + "/" + fileName; UnityWebRequest www = UnityWebRequest.Get(sPath); yield return www.SendWebRequest(); File.WriteAllText(Application.persistentDataPath + "/" + fileName, www.downloadHandler.text, Encoding.GetEncoding("utf-8")); www.Dispose(); SaveData(CSVUtils.GetInstance().LoadFile(Application.persistentDataPath, fileName)); callback(); } public void SaveData(string[] lineArr) { monsterDataDic = new Dictionary(); for (int i = 1; i < lineArr.Length; i++) { string[] data = lineArr[i].Split(','); List weightList = new List(); weightList.Add(int.Parse(data[2].Split('\"')[1].Split('|')[1])); weightList.Add(int.Parse(data[3].Split('|')[1])); weightList.Add(int.Parse(data[4].Split('\"')[0].Split('|')[1])); MonsterData monster = new MonsterData { weponWeight = weightList, num = int.Parse(data[5]), speed = int.Parse(data[6]), }; monsterDataDic[int.Parse(data[0])] = monster; } } #endregion #region Functions public MonsterData GetData(int id) { MonsterData data = new MonsterData(); if (monsterDataDic != null && monsterDataDic.ContainsKey(id)) { data = monsterDataDic[id]; } return data; } #endregion } }