Unity游戏UI框架(九):实现多语言管理

来源:互联网 发布:新买的mac电池循环次数 编辑:程序博客网 时间:2024/06/04 19:13

如果需要发布多语言版本,一般需要用到配置文件,前面实现了配置管理器,这里给出基于Json 可配置原理的解决方案。

/// <summary>/// 语言版本管理器/// 使得我们发布的游戏,可以根据不同的国家,显示不同的语言信息。/// </summary>public class LauguageMgr{    /// <summary>    /// 单例    /// </summary>    private static LauguageMgr _instance;    /// <summary>    /// 文本缓存    /// </summary>    private Dictionary<string, string> _DicLauguageCache;    private LauguageMgr()    {        _DicLauguageCache = new Dictionary<string, string>();        //初始化语言缓存集合        InitLauguageCache();    }    /// <summary>    /// 获取单例    /// </summary>    /// <returns></returns>    public static LauguageMgr GetInstance()    {        if (_instance == null)        {            _instance = new LauguageMgr();        }        return _instance;    }    /// <summary>    /// 初始化语言缓存集合    /// </summary>    private void InitLauguageCache()    {        IConfigManager config = new ConfigManagerByJson(SysDefine.SYS_PATH_LAUGUAGE_INFO);        if (config != null)        {            _DicLauguageCache = config.AppSetting;        }    }    /// <summary>    /// 获取显示文本信息    /// </summary>    /// <param name="lauguageID">语言的ID</param>    /// <returns></returns>    public string GetText(string lauguageID)    {        string strQueryResult = string.Empty;           //查询结果        if (string.IsNullOrEmpty(lauguageID)) return null;        //查询处理        if (_DicLauguageCache != null && _DicLauguageCache.Count >= 1)        {            _DicLauguageCache.TryGetValue(lauguageID, out strQueryResult);            if (!string.IsNullOrEmpty(strQueryResult))            {                return strQueryResult;            }        }        Log.Write(GetType() + "/ShowText()/ Query is Null!  Parameter lauguageID: " + lauguageID,Log.Level.High);        return null;    }}

UI框架参考:Unity游戏UI框架实战
刘老师讲Unity

UI框架到这里结束了,在后面还有一章会用这个框架做一个简易的项目,会提供代码下载。

原创粉丝点击