using cfg.StringCfg; using Cysharp.Threading.Tasks; using Framework; using PhxhSDK; using SimpleJSON; using UnityEditor; using UnityEngine; using static StringManager; namespace Gameplay { class LoadingUILocalize : Singlenton { public StringConfig Config => cfg; StringConfig cfg; private async UniTask LoadByteBuf() { // todo: load from asset loader var filePath = string.Format("Assets/Config/UISomeAbout/LoadingUI/stringconfigUILoading.json"); //var loadAsset = AssetDatabase.LoadAssetAtPath(filePath); var loadAsset = await AssetManager.Instance.LoadAssetAsync(filePath); var jsonText = loadAsset.text; return JSON.Parse(jsonText); } private async UniTask LoadCfg() { cfg = new cfg.StringCfg.StringConfig(await LoadByteBuf()); } public async UniTask Init() { await LoadCfg(); } private DataString GetByKey(string key) { var dataString = cfg.GetOrDefault(key); if (dataString == null || string.IsNullOrEmpty(dataString.Value)) { DebugUtil.LogError("{0}.GetStringConfigByKey: key = {1} is not exist, check table please!!", GetType(), key); } return dataString; } public string GetTextByIndex(int index) { DataString data = cfg.DataList[index]; string value = ""; if (data != null) { switch (StringManager.CurLanguage) { case (LanguageType.Default): { value = data.Value; break; } case (LanguageType.CN): { value = data.Value; break; } case (LanguageType.TW): { break; } case (LanguageType.EN): { value = data.ValueEn; break; } default: { DebugUtil.LogError($"==== 文本翻译的语言不存在相应的枚举值!请检查语言设置!!! ===="); break; } } } return value; } } }