zoukankan      html  css  js  c++  java
  • NGUI本地化

    之前在网上的NGUI本地化教程是基于老版本的了,现在用的3.7版本已经改了很多,以前的本地化教程有点不适用了。

    1.资源:

    本地化的txt文本起名叫做Chinese.txt,到resource目录下新建一个Language目录,把txt文件放到Language下。注意:要把txt转码成UTF-8编码,不然unity里面会显示不出来。如果是其他语言可以直接放到unity中。我用Notepad++转码的。 =.=

    2.代码:

    在UIRoot下新建一个label。再新建一个脚本,绑定到UIroot或者其他的某个物体上,保证运行的时候可以执行这个脚本即可。

    脚本内容比较简单,首先获取到Localization.language,再给label赋值即可。

    一共三句:

    void Awake()
    {
    Localization.language = "Language/Chinese";
    UILabel label = GameObject.Find("Label").GetComponent<UILabel>();
    label.text = Localization.Get("desc");
    }

    Localization.language会从本地的resource文件夹下搜索Chinese.txt文件,Localization.Get("desc")会获取到Chinese.txt文件里desc对应的字段值,NGUI的Localization脚本里面有说明,可以找到该脚本仔细看看。label上面也不用绑定UILocalize控件了。使用的字体要支持中文,不然也不能正常显示的。还有一点,最好把NGUI示例里面自带的Localization.txt删掉,不然显示总错乱的,可能是我的key和例子里的一样就发生了冲突,不过建议删了,反正用不上自带的这个txt。

    点击运行,就可以正常显示我的txt里面对应key值的子段了。

     

    按照这个思路做的话,项目里面就要把所有的文字都放到一个txt文件里了,然后游戏运行的时候加载到内存中,如果文件比较大应该会对内存有点影响。这个是在我电脑本地做的测试,不知道还有没有更好的方法来做本地化。希望知道的朋友告诉一声,多谢~~

  • 相关阅读:
    springboot实现定时任务,异步操作,统一结果返回,全局异常处理,拦截器及事务处理
    springboot集成mybatis,热部署以及整合Swagger2
    使用idea上传项目到码云(gitee)上
    RabbitMQ 高级应用
    Spring Boot整合RabbitMQ
    RabbitMQ--其他几种模式
    RabbitMQ入门--简单模式
    RabbitMQ安装(centos7)
    RocketMQ安装及入门
    [UWP]涨姿势UWP源码——极简的RSS阅读器
  • 原文地址:https://www.cnblogs.com/Sakya00/p/4265623.html
Copyright © 2011-2022 走看看