using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; using UnityEngine; using UnityEngine.Networking; namespace WildAttack { public enum LanguageType { CH, EN, JP } public struct StringData { public string CH; public string EN; public string JP; } public class StringModule : Singleton, IModule { private Dictionary stringDataDic; 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) { stringDataDic = new Dictionary(); for (int i = 1; i < lineArr.Length; i++) { string[] data = lineArr[i].Split(','); stringDataDic[data[0]] = new StringData() { CH = data[1], EN = data[2], JP = data[3] }; } } public string GetData(string key) { if (stringDataDic.ContainsKey(key)) { if (GameMananger.GetInstance().Language == LanguageType.CH) { return stringDataDic[key].CH; } else if (GameMananger.GetInstance().Language == LanguageType.EN) { return stringDataDic[key].EN; } else if (GameMananger.GetInstance().Language == LanguageType.JP) { return stringDataDic[key].JP; } else { return ""; } } else { return ""; } } } }