StringModule.cs 2.3 KB

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