using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using System.Text; /// /// 首包语言管理类 /// public class FirstPackLang { private static FirstPackLang _instance; private Dictionary _langDict = new Dictionary(); private List _langList = new List(); // 语言文本索引 public static class TextIndex { public const int HotUpdate = 0; public const int InitSDK = 1; public const int ExtractResources = 2; public const int CheckVersion = 3; public const int EnterHotUpdateAssembly = 4; public const int PrepareUpdate = 5; public const int SkipHotUpdate = 6; public const int LatestVersion = 7; public const int DownloadingUpdate = 8; public const int ApplyingUpdate = 9; public const int RestartRequired = 10; public const int InitializingSDK = 11; public const int CheckingResources = 12; public const int ExtractingResources = 13; public const int ResourceCheckComplete = 14; public const int CheckingVersion = 15; public const int MinorUpdateDetected = 16; public const int MediumUpdateDetected = 17; public const int MajorUpdateDetected = 18; public const int EnteringGame = 19; // LaunchLoadingWin 相关文本 public const int LoadingResources = 20; // 正在加载游戏资源... public const int CheckingVersionUpdate = 21; // 正在检查版本更新... public const int InitializingGame = 22; // 正在初始化游戏... public const int EnteringGameWorld = 23; // 准备进入游戏世界... } public static FirstPackLang Instance { get { if (_instance == null) { _instance = new FirstPackLang(); _instance.Init(); } return _instance; } } private void Init() { LoadLanguageFile(); } private void LoadLanguageFile() { TextAsset textAsset = Resources.Load("firstpackLang"); if (textAsset == null) { Debug.LogError("无法加载语言文件: firstpackLang.txt"); return; } string[] lines = textAsset.text.Split('\n'); for (int i = 0; i < lines.Length; i++) { string line = lines[i].Trim(); if (!string.IsNullOrEmpty(line)) { _langList.Add(line); _langDict[line] = i.ToString(); } } Debug.Log($"已加载 {_langList.Count} 条语言条目"); } /// /// 通过索引获取文本 /// public string GetText(int index) { if (index >= 0 && index < _langList.Count) { return _langList[index]; } return $"[Missing Text: {index}]"; } /// /// 通过原始中文获取索引 /// public int GetIndex(string originalText) { if (_langDict.TryGetValue(originalText, out string indexStr)) { return int.Parse(indexStr); } return -1; } }