unity3d UGUI多语言

从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

posted @ 2015-04-16 16:44  YYRise  阅读(5004)  评论(0编辑  收藏  举报