现在很多游戏都是多语言版本的,比如Dead Trigger2在界面选择语言后可以实时改变。
要实现这种效果想法其实比较简单:所有游戏中的文本内容都取自一个表。有一个文本管理器,当传入一个ID时会根据当前设定的语言来选择相应的字符串。
public class GameTextManager
{
public int curLang = 0;
private Dictionary<uint,string[]> contents;
public string GetText(uint id)
{
string[] texts;
if(contents.TryGetValue(id, out texts))
{
return texts[curLang];
}
return null;
}
}
配置表的设计,参考之前文章
在unity3d中使用Excel做配置的解决方案,做如下配置:
然后导出一个defineText.cs文件,在需要使用字符串的时候做形如GameTextManager.ins