Unity教程之-UGUI多语言实现

 

想必一款流行的游戏,都会包含好几种语言,那么怎么在unity3d中用UGUI实现多语言呢,下面我们来看下,从Foundation插件中抽离出的多语言。原理很简单,给Text绑定key,在程序开始时设置本地语言即可。

目录结构:

UGUI多语言

LanguageEditor.cs:自定义编辑器;

LanguageService.cs:负责读取语言文件供程序使用;

LanguageText.cs:绑定到Text组件中;

Resources文件夹:存放资源文件及配置文件;

Localization文件夹:语言包,所有的语言放在该目录下,每种语言一个文件夹;根据语言设置读取相应目录下的语言文件;

LocalizationConfig:多语言配置文件,包含所有的语言名字。

SimpleJSON.cs:多语言的本地文件是json格式,解析json用;

由于项目中无动态设置语言需求,也就没做在程序运行时更改语言功能。在程序启动后先设置语言,绑定了LanguageText.cs的Text自动会根据设置的key显示对应的语言字符。

UGUI多语言

使用demo:


using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Language;

public class Test : MonoBehaviour {

// Use this for initialization

void Awake () {
LanguageService.Instance.Language = new LanguageInfo ("English");
}

void Start()
{
GameObject textPrefab = (GameObject)Resources.Load ("Text");
GameObject textObj = (GameObject)Instantiate (textPrefab);
textObj.transform.SetParent (this.transform);
textObj.transform.localPosition = Vector3.zero;
}
}

下面是demo下载地址:

LanguageDemo.txt (下载912 )

好了,本篇文章关于UGUI多语言的实现讲解到此结束下篇我们再会!