(本文UI使用NGUI实现)UI中文本本地化可采用两种形式:1、静态本地化,即将UI对应的Assets文件中的文字直接替换,然后打成bundle打包即可;2、动态本地化,即在游戏运行时在替换对应的文字。由于动态本地化需要在运行时加载对应的配置,动态读取替换,占用游戏资源,建议使用静态本地化。
静态本地化实现:遍历所有Prefab中的UILabel组件,把label的值作为key在映射表中找到对应的值重新设置label,然后将修改保存;(其间遇到修改保存失效的情况,可以在没修改一个Prefab后执行EditorUtility.SetDirty(asset),该接口的功能就是告诉编辑器数据改变需要保存,全部修改完后还需使用Ctrl+s保存完成修改)。
动态本地化实现:NGUI提供一个UILocalize组件,要实现动态时替换需要为每个UILabel添加该组件,添加完该组件后运行时会自动读取映射表替换label值,找该值的方法在UILocalize.cs中的OnLocalize()中实现,我们可以把value的获取方式改为读取自己的配置获取