unity3d 多语言 解决方案1——自定义本地文本
来源:互联网 发布:淘宝手机端购买流量 编辑:程序博客网 时间:2024/06/14 00:06
unity3d 多语言 解决方案1——自定义本地文本
今天在学习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 多语言 解决方案1——自定义本地文本
- unity3d 多语言 解决方案1——自定义本地文本
- unity3d 文本多语言实现
- 嵌入式系统多语言文本解决方案
- Unity3D自定义按钮—OnGUI
- Unity3D 使用C#语言建立本地数据库
- 自定义view中绘制文本居中解决方案
- Unity3d——自定义编辑器Editor教程
- Unity3D研究院之使用C#语言建立本地数据库
- Unity3D研究院之使用C#语言建立本地数据库
- Unity3D —— 报错解决方案和常用功能集
- ElasticSearch多语言搜索入门(二)— 检测文本所使用的主要语言
- Unity3D实现多语言本地化
- 自定义View(1):自定义文本显示
- Unity3d 多线程、多并发网络解决方案(C#)
- 转载1——Android自定义中EditText中的hint文本的大小
- ios开发——富文本——自定义字体
- R:绘图——文本、自定义坐标轴和图例
- 关于Unity3D中Resources动态加载NGUI图片的方法!!!
- [数据结构]C语言二叉树的实现
- Web学习
- 使用国内的WSUS服务
- How View Controllers Present Other View Controllers
- unity3d 多语言 解决方案1——自定义本地文本
- USACO月赛题解 第四讲 数值计算
- spoj 6779. Can you answer these queries VII(树链剖分)
- 回溯问题简答总结与8皇后问题的应用
- win8 驱动签名
- USACO月赛题解 第三十讲 动态规划(一)
- 开源编译器学习笔记05(VC6 语法分析器——见面语法树状态机)——2014_2_1
- 类和对象部分练习
- 利用q解决嵌套回调的问题