unity3d 多语言 解决方案1——自定义本地文本
2014-02-01 13:51
288 查看
unity3d 多语言 解决方案1——自定义本地文本
from:http://momowing.diandian.com/今天在学习packerpro这款插件的使用的时候留意到它里边使用到的多语言方案十分有趣,算是一种比较朴素但是实用的方法——通过自己编辑一个本地txt文本,将字段规范后按照语言需求读取出来,这更加像是通过unity在读取一个excel表格,于是这里整理一下贴上来跟大家品品。
这个是packerpro使用的自定义文本,可以注意到左侧为识别id,我们可以认为这是关键字,通过例如“mainSetting_setName”这个键,然后获取对应的语言情况下的值,比如现在是中文情况那么取得的就是“名称设定这个包装集的名称”。
然而第一行用于区分当前的语言识别,这里用了4种语言,我们可以假设这个文本是一个表格,通过简单的算法将他们保存在我们的数据表格中(编码中用的嵌套list),外部传入需要的key,程序去list中获取key对应的值,便是如此了,原理比较好理解,我们可以试试实现。
创建一个脚本,为它准备几个必要的方法:
为了方便外部脚本的调用,直接使用static方法(不知道够不够,唉~不够再加好了),方便其他项目移植调用什么的,接着准备一些必要的变量:
看起来很普通,其实比较变态的是那个cells,在嵌套的时候容易乱哈~注意看,初始化罗~:
这里从本地读取一个叫multilan的txt文本然后把其中的数据按照行列塞进我们的编码数据表,因为我不希望有人看了这篇文章还有疑问(好吧,我自己经常会这样),我再说一下这个txt文件要放在哪里:
在Assets文件夹下面直接创建一个名叫“Resources”的文件夹,接着创建一个名叫multilan的txt文本在里边就ok啦。
接着说说我们自定义的文本内容格式,注意到算法里面的列区分了么,用’\t’(制表符,其实就是tab键)换句话说,自定义文本中的列也用tab间隔就哦了,当然您如果不喜欢用tab用别的都无所谓啦,自己改改喜欢的,修正编码就好。
看起来并不复杂吧, 不过这里还是要说几个注意点:
id后面的语言定义要和枚举里面定义的一致哈
检查清楚最后一列后面是否还有制表符,不然读出来的数据有可能不正常的哦。
接着是设置语言的方法:
会不会太简单?
然后是获取内容了:
最后开始测试内容的获取:
说实话,这种方法还是有很多的不方便性,但是对于想要独立维护的本地多语言文本是不错的选择哦。
最后我把编码共享,ok!!!
http://pan.baidu.com/s/1ntyPPBb
相关文章推荐
- 关于Unity3D中Resources动态加载NGUI图片的方法!!!
- 关于unity3d插件的自动打包
- unity3d各平台通讯原生的平台API的说明
- unity anim 组件的使用
- unity 场景自动保存
- Unity不再仅仅是游戏引擎
- Unity自动寻路的简单演示
- 用visual studio来编写Unity3D脚本
- Unity 输出调试信息到界面
- Unity粒子系统 Unity3D ParticleSystem粒子系统(3.5版)
- unity3d笔记(3)——地形创建
- Unity 《王小瓜传奇》一
- unity3d笔记(2)——基本操作(一)
- Unity 《王小瓜传奇》 序
- unity3d学习笔记(十一)--NGUI结合Shader制作小地图
- Unity2D 鼠标转换到世界的方法.
- unity3d学习笔记(十八)--利用C#的代理和事件结合NGUI的按钮实现施放技能
- Unity 3D + Vuforia制作AR人物互动
- Unity 3D插件大全
- [Unity3d]旋转拖动物体