Unity3D实现多语言本地化
来源:互联网 发布:数据字典生成工具 编辑:程序博客网 时间:2024/04/30 06:43
一款游戏可能有多个语言版本,各个版本的语言不相同,有中文的、英文的等多种版本
在开发时,我们一般将关键字翻译到一个文本文件
当需要对游戏的关键字翻译后,只需要对文件进行解析做相关处理
接下来我做一个简单Demo,介绍创建一个简单语言本地化项目
先在Scene视图下创建两个按钮,如下图
在Project视图下新建一个Resources文件夹
在Resources文件夹下新建两个名为Chinese和English的.txt文件
文本文件等号左边是同一的标识,相当于一个“key”
中文问题如果现实不了,可能是编码问题,这里我将该文本编码设置成UTF-8
Chinese.txt
start=开始 pause=暂停
English.txt
start=Start pause=Pause
接下来新建一个命名为LocalizationManager的C#脚本,用于对本地化进行管理
LocalizationManager.cs
using UnityEngine; using System.Collections; using System.Collections.Generic; public class LocalizationManager { //单例模式 private static LocalizationManager _instance; public static LocalizationManager GetInstance { get { if (_instance == null) { _instance = new LocalizationManager(); } return _instance; } } private const string chinese = "Chinese"; private const string english = "English"; //选择自已需要的本地语言 public const string language = english; private Dictionary<string, string> dic = new Dictionary<string, string>(); /// <summary> /// 读取配置文件,将文件信息保存到字典里 /// </summary> public LocalizationManager() { TextAsset ta = Resources.Load<TextAsset>(language); string text = ta.text; string[] lines = text.Split('\n'); foreach (string line in lines) { if (line == null) { continue; } string[] keyAndValue = line.Split('='); dic.Add(keyAndValue[0], keyAndValue[1]); } } /// <summary> /// 获取value /// </summary> /// <param name="key"></param> /// <returns></returns> public string GetValue(string key) { if (dic.ContainsKey(key) == false) { return null; } string value = null; dic.TryGetValue(key, out value); return value; } }
接下来新建一个命名为LocalizationText的C#脚本,用与挂载到含有Text组件的对象上
LocalizationText.cs
using UnityEngine; using System.Collections; using UnityEngine.UI; public class LocalizationText : MonoBehaviour { public string key = " "; void Start() { GetComponent<Text>().text = LocalizationManager.GetInstance.GetValue(key); } }
最后,将LocalizationText挂载到含Text组件的游戏对象上
并将输入key,通过key来获取需要显示的字符串
运行游戏,成功将中文转化为英文
1 0
- Unity3D实现多语言本地化
- unity3d实现语言本地化
- Unity3d实现本地化
- Silverlight中实现多语言(本地化)
- iOS实现语言本地化
- c语言的本地化实现
- 多语言本地化
- ios多语言本地化
- 本地化多语言支持
- MFC 多语言 本地化
- iOS 多语言本地化
- Xcode多语言本地化
- 本地化,多语言
- Android 本地化、多语言
- unity3d 文本多语言实现
- ASP.NET的本地化和多语言实现
- 本地化或多语言支持
- asp.net 本地化多语言
- 使用selenium和phantomjs抓取淘宝衣服并存入mongodb
- 强引用(Strong Reference)/软引用(Soft Reference)/弱引用(Weak Reference)/虚引用(Phantom Reference)
- Js 正则表达写法
- asp.net实现同一用户只能在在一个地方登录即单点登录
- “去重”与“排序”
- Unity3D实现多语言本地化
- Java IO 字符流例子
- 启动Genymotion虚拟机后开启adb命令报错的问题
- Redis集群
- fiddler使用方法
- 0xFFFFF
- 树状数组求逆序对-洛谷P3531 [POI2012]LIT-Letters
- java.util.concurrent中Phaser的分析
- Struts2--动态Action的三种实现方法