StringModule.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 enum LanguageType
  11. {
  12. CH,
  13. EN,
  14. }
  15. public struct StringData
  16. {
  17. public string CH;
  18. public string EN;
  19. }
  20. public class StringModule : Singleton<StringModule>, IModule
  21. {
  22. private Dictionary<string, StringData> stringDataDic;
  23. public IEnumerator LoadCSV(string fileName, Action callback)
  24. {
  25. string sPath = CSVUtils.GetStreamingAssetPath() + "/" + fileName;
  26. UnityWebRequest www = UnityWebRequest.Get(sPath);
  27. yield return www.SendWebRequest();
  28. File.WriteAllText(Application.persistentDataPath + "/" + fileName, www.downloadHandler.text, Encoding.GetEncoding("utf-8"));
  29. www.Dispose();
  30. SaveData(CSVUtils.GetInstance().LoadFile(Application.persistentDataPath, fileName));
  31. callback();
  32. }
  33. public void SaveData(string[] lineArr)
  34. {
  35. stringDataDic = new Dictionary<string, StringData>();
  36. for (int i = 1; i < lineArr.Length; i++)
  37. {
  38. string[] data = lineArr[i].Split(',');
  39. stringDataDic[data[0]] = new StringData()
  40. {
  41. CH = data[1],
  42. EN = data[2],
  43. };
  44. }
  45. }
  46. public string GetData(string key)
  47. {
  48. if (stringDataDic.ContainsKey(key))
  49. {
  50. if (GameMananger.GetInstance().Language == LanguageType.CH)
  51. {
  52. return stringDataDic[key].CH;
  53. }
  54. else if (GameMananger.GetInstance().Language == LanguageType.EN)
  55. {
  56. return stringDataDic[key].EN;
  57. }
  58. else
  59. {
  60. return "";
  61. }
  62. }
  63. else
  64. {
  65. return "";
  66. }
  67. }
  68. }
  69. }