Unity3d 如何在游戏中统一使用不同语言的不同资源(音频、精灵和文本)?
我正在开发一个Unity 2D游戏,用户可以在主屏幕上选择一种语言,然后接下来的游戏应该用所选语言本身进行。特定于语言的更改包括音频文件、精灵和画布上的文本UI元素。我如何处理这个问题?这要看情况而定。对此有不同的方法 我可能会使用嵌套字典和枚举来实现,但可能会有更优雅的解决方案Unity3d 如何在游戏中统一使用不同语言的不同资源(音频、精灵和文本)?,unity3d,unity5,Unity3d,Unity5,我正在开发一个Unity 2D游戏,用户可以在主屏幕上选择一种语言,然后接下来的游戏应该用所选语言本身进行。特定于语言的更改包括音频文件、精灵和画布上的文本UI元素。我如何处理这个问题?这要看情况而定。对此有不同的方法 我可能会使用嵌套字典和枚举来实现,但可能会有更优雅的解决方案 假设在某些枚举中,每个文本、精灵、声音等都有特定的标签,如 枚举文本标签{ 主面板标题, 消防按钮, 信息文本, ... } 枚举SpriteLabel{ 语言旗帜, 背景,, ... } 枚举声音标签{ 欢迎留言,
枚举文本标签{
主面板标题,
消防按钮,
信息文本,
...
}
枚举SpriteLabel{
语言旗帜,
背景,,
...
}
枚举声音标签{
欢迎留言,
国歌,
...
}
enum语言{
英语,
法语
德语,
...
}
//将文本标签映射到英文文本
字典英语文本;
//将文本标签映射到法语文本
法语词典;
//将文本标签映射到德语文本
日耳曼词典;
...
精灵(字典
)和声音(字典
)也是如此字典文本;
精灵和声音也是如此文本
(声音
,精灵
)字典是简单字典,因为它不依赖于外部数据:
text=newdictionary(){
{Language.English,englishTexts},
{语言.法语,法语},
{语言.德语,germanTexts},
...
};
EnglishText[MainPanelTitle]=。。。;
英语文本[FireButton]=。。。;
...
法语文本[MainPanelTitle]=。。。;
...
string infotext=text[Language.French][textlab.infotext];
正如我所说,这可能不是最优雅的解决方案,但我会这样做;) 我以前是这样做的
Var string Language;
Var UItext Title;
然后创建按钮来选择语言
英文按钮:
Language = “English”;
然后检查用户选择什么
If (Language == “English”) {
Title = “Title Game” ;
}else if (Language == “Arabic”) {
Title = “عنوان اللعبة" ;
}
. web上有大量本地化脚本,资产商店上有多个高质量的解决方案。