WeaponModule.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Text;
  6. using UnityEngine;
  7. using UnityEngine.Networking;
  8. namespace WildAttack
  9. {
  10. public struct WeaponData
  11. {
  12. public int atk;
  13. public int cd;
  14. public string atkAnim;
  15. }
  16. public class WeaponModule : Singleton<WeaponModule>, IModule
  17. {
  18. private Dictionary<int, WeaponData> weaponDataDic;
  19. public IEnumerator LoadCSV(string fileName, Action callback)
  20. {
  21. string sPath = CSVUtils.GetStreamingAssetPath() + "/" + fileName;
  22. UnityWebRequest www = UnityWebRequest.Get(sPath);
  23. yield return www.SendWebRequest();
  24. File.WriteAllText(Application.persistentDataPath + "/" + fileName, www.downloadHandler.text, Encoding.GetEncoding("utf-8"));
  25. www.Dispose();
  26. SaveData(CSVUtils.GetInstance().LoadFile(Application.persistentDataPath, fileName));
  27. callback();
  28. }
  29. public void SaveData(string[] lineArr)
  30. {
  31. weaponDataDic = new Dictionary<int, WeaponData>();
  32. for (int i = 1; i < lineArr.Length; i++)
  33. {
  34. string[] data = lineArr[i].Split(',');
  35. weaponDataDic[int.Parse(data[0])] = new WeaponData()
  36. {
  37. atk = int.Parse(data[2]),
  38. cd = int.Parse(data[3]),
  39. atkAnim = data[4],
  40. };
  41. }
  42. }
  43. public WeaponData GetData(int id)
  44. {
  45. WeaponData data = new WeaponData();
  46. if (weaponDataDic != null && weaponDataDic.ContainsKey(id))
  47. {
  48. data = weaponDataDic[id];
  49. }
  50. return data;
  51. }
  52. }
  53. }