NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LoadingUILocalize.cs

88 lines
2.6 KiB
C#

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<LoadingUILocalize>
{
public StringConfig Config => cfg;
StringConfig cfg;
private async UniTask<JSONNode> LoadByteBuf()
{
// todo: load from asset loader
var filePath = string.Format("Assets/Config/UISomeAbout/LoadingUI/stringconfigUILoading.json");
//var loadAsset = AssetDatabase.LoadAssetAtPath<TextAsset>(filePath);
var loadAsset = await AssetManager.Instance.LoadAssetAsync<TextAsset>(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;
}
}
}