赞
踩
一款游戏可能有多个语言版本,各个版本的语言不相同,有中文的、英文的等多种版本
在开发时,我们一般将关键字翻译到一个文本文件
当需要对游戏的关键字翻译后,只需要对文件进行解析做相关处理
接下来我做一个简单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来获取需要显示的字符串
运行游戏,成功将中文转化为英文
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。