从Foundation插件中抽离出的多语言。原理很简单,给Text绑定key,在程序开始时设置本地语言即可。
目录结构:
LanguageEditor.cs:自定义编辑器;
LanguageService.cs:负责读取语言文件供程序使用;
LanguageText.cs:绑定到Text组件中;
Resources文件夹:存放资源文件及配置文件;
Localization文件夹:语言包,所有的语言放在该目录下,每种语言一个文件夹;根据语言设置读取相应目录下的语言文件;
LocalizationConfig:多语言配置文件,包含所有的语言名字。
SimpleJSON.cs:多语言的本地文件是json格式,解析json用;
由于项目中无动态设置语言需求,也就没做在程序运行时更改语言功能。在程序启动后先设置语言,绑定了LanguageText.cs的Text自动会根据设置的key显示对应的语言字符。
使用demo:
1 using UnityEngine; 2 using UnityEngine.UI; 3 using System.Collections; 4 using Language; 5 6 public class Test : MonoBehaviour { 7 8 // Use this for initialization 9 10 void Awake () { 11 LanguageService.Instance.Language = new LanguageInfo ("English"); 12 } 13 14 void Start() 15 { 16 GameObject textPrefab = (GameObject)Resources.Load ("Text"); 17 GameObject textObj = (GameObject)Instantiate (textPrefab); 18 textObj.transform.SetParent (this.transform); 19 textObj.transform.localPosition = Vector3.zero; 20 } 21 }
Demo下载地址:
链接: http://pan.baidu.com/s/1dD70xah 密码: rw4r