從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