killapp/Assets/Scripts/Base/LanguageManager.cs

46 lines
1.3 KiB
C#
Raw Normal View History

2025-11-18 09:18:48 +08:00
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using Newtonsoft.Json;
using UnityEngine;
namespace Kill.Base
{
public class LanguageManager : MonoBehaviour
{
public static LanguageManager Instance;
[System.Serializable]
public struct Language
{
public string key;
public string zh;
public string en;
}
List<Language> languageList;
[System.Serializable]
public enum LanguageType
{
Chinese,
English
}
void Awake()
{
Instance = this;
}
public LanguageType languageType = LanguageType.English;
public async Task Init()
{
TextAsset textAsset = await LoadRes.Instance.LoadAssetAsync<TextAsset>("language", "language.json");
languageList = JsonConvert.DeserializeObject<List<Language>>(textAsset.text);
}
public string GetLanguage(string key)
{
int index = languageList.FindIndex(x => x.key == key);
if(index<0||index>=languageList.Count)
index=0;
if (languageType == LanguageType.Chinese)
return languageList[index].zh;
else
return languageList[index].en;
}
}
}