总的笔记:https://www.cnblogs.com/guobaoxu/p/12055930.html


目录

一、Demo

二、分析思路

三、替换

四、总结

五、补充

工具:

  Unity版本:2018.4.5f1

  Bitmap Font Generator:简称BMFont,就是常用的那个做位图字体的工具,地址:http://www.angelcode.com/products/bmfont/

  AssetStudio:地址:https://www.perfare.net/tag/assetstudio

  UABE:地址:https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor

一、Demo

  BMFont主要是NGUI在用,所以先做一个简单的Demo,用UGUI在屏幕上写一行字,采用黑体做成的BMFont,先用BMFont软件做,再导入Unity,Demo效果如下。目标是给他换成别的字体。

二、分析思路

  BMFont由两部分组成,一张图+一个文本(fnt后缀名),但是在导入Unity的时候,NGUI插件还加了一个Prefab和一个Material,不管怎么样,先用AssetStudio来预览,首先图是找到了,这个肯定是要改的,也比较简单,然后是找到了一个MonoBehavior,参数预览如下:

  显然BMFont的文本被改写成了这个MonoBehavior,那么替换就很简单了,再做一个含有新字体的APK,先用UABE导出需要替换的这两个部分,再导回去就结束了

三、替换

  和TTF不同,BMFont一般不会包含很多字符,所以用UABE来DUMP文本的话并不会很大。首先是这MonoBehavior的替换,分别Dump出新旧字体的参数文本,把新字体里面的指针都改成和旧字体一样,如下图红圈覆盖部分,然后把新字体的参数导入给旧字体。

  图片替换就比较简单了,直接找到图片对应的Texture2D,右侧Plugins-Edit-Load新图,即可。

  最后保存重新打包APK就完成了,最终效果如下

四、总结

  完整操作:

  ① 用新字体做一个简易Demo

  ② 用新字体的MonoBehavior和图片分别替换

  ③ 实际上在MonoBehavior里面有一个指针指向了Material,如果替换之后效果不理想,可以把他也替换了,和替换MonoBehavior的时候相似,内部的指针必须保持

五、补充

  在实际应用中,我曾经遇到了文本和图片还保留着的情况,测试过,没有了MonoBehavior要替换,取而代之的是TextAsset和Texture2D要换,这两个UABE都有插件,替换起来很方便。而且只需要用BMFont做出新字体就可以了,不需要用Unity。

Unity手游汉化笔记③:UABE替换BMFont的更多相关文章

  1. Unity手游汉化笔记①:UABE+AssetStudio编辑MonoBehavior类型Asset

    总的笔记:https://www.cnblogs.com/guobaoxu/p/12055930.html 目录 一.使用工具 二.具体操作 [1]利用AssetStudio进行预览 [2]UABE修 ...

  2. Unity手游汉化笔记②:使用UABE替换TTF字体

    总的笔记:https://www.cnblogs.com/guobaoxu/p/12055930.html 目录 一.分析 二.思路 三.具体实践 四.总结 Unity版本:2018.4.5f1 工具 ...

  3. 知物由学|游戏开发者如何从容应对Unity手游风险?

    本文由  网易云发布. "知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不 ...

  4. Unity手游引擎安全解析及实践

    近日,由Unity主办的"Unity技术开放日"在广州成功举办,网易移动安全技术专家卓辉作为特邀嘉宾同现场400名游戏开发者分享了网易在手游安全所积累的经验.当下,很多手游背后都存 ...

  5. Unity手游之路<七>角色控制器

    Unity手游之路<七>角色控制器 我们要控制角色的移动,可以全部细节都由自己来实现.控制角色模型的移动,同时移动摄影机,改变视角.当然Unity也提供了一些组件,可以让我们做更少的工作, ...

  6. Unity手游之路<十三>手游代码更新策略探讨

    http://blog.csdn.net/janeky/article/details/25923151 这几个月公司项目非常忙,加上家里事情也多,所以blog更新一直搁置了.最近在项目开发上线过程中 ...

  7. unity手游之聊天SDK集成与使用一

    手游中都有聊天功能,比如公会,私聊,世界聊天,那么找一个好用,功能强大的SDK的可以节省很多精力,帮助我们提高开发速度与游戏质量. 写本篇博文是为了方便使用这个SDK做聊天模块的程序,避免许多坑,我在 ...

  8. Unity手游之路手游代码更新策略探讨

    版权声明: https://blog.csdn.net/janeky/article/details/25923151 这几个月公司项目非常忙.加上家里事情也多,所以blog更新一直搁置了. 近期在项 ...

  9. Unity手游之路<二>Java版服务端使用protostuff简化protobuf开发

    http://blog.csdn.net/janeky/article/details/17151465 开发一款网络游戏,首先要考虑的是客户端服务端之间用何种编码格式进行通信.之前我们介绍了Unit ...

随机推荐

  1. 请用js写一个函数,实现获取浏览器url中查询字符串中的参数并返回一个数组

    <script> console.log(getUrlArr()); function getUrlArr() { var arr = []; var url = "http:/ ...

  2. OI蒟蒻收集的各种网址集合(无标记

    本地收藏夹伤不起…… https://zh.wikipedia.org/wiki/Template:%E7%AE%97%E6%B3%95 https://courses.csail.mit.edu/6 ...

  3. gethostbyaddr

    函数原型: #include<netdb.h> struct hostent * gethostbyaddr(const char *addr, socklen_t len, int fa ...

  4. RPKM FPKM TPM RSEM

    RPKM:Reads Per Kilobases Per Million Reads指的是每1百万个reads中比对到每1kb碱基外显子上的reads数 FPKM:Fragments Per Kilo ...

  5. 我对网络IO的理解

    Unix/Linux系统下IO主要分为磁盘IO,网络IO,我今天主要说一下对网络IO的理解,网络IO主要是socket套接字的读(read).写(write),socket在Linux系统被抽象为流( ...

  6. bind 安装 和配置(master/slave)

    一,软件安装 #sudo yum -y install bind 二,配置 # vi /etc/named.conf  // // named.conf // // Provided by Red H ...

  7. Redis与Mysql双写一致性方案解析

    一 前言 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存 ...

  8. 【Gamma】“北航社团帮”展示博客

    目录 团队介绍 项目愿景 整个项目的预期典型用户 功能展示 原预期用户数量 项目使用情况数据分析 用户量变化 学生认证人数 社长认证人数 入社申请数 活动发布 新闻发布 网页端使用情况 小程序打开次数 ...

  9. 【神经网络与深度学习】neural-style、chainer-fast-neuralstyle图像风格转换使用

    neural-style 官方地址:这个是使用torch7实现的;torch7安装比较麻烦.我这里使用的是大神使用TensorFlow实现的https://github.com/anishathaly ...

  10. SpringBoot工程常见报错汇总

    1.Springboot测试类运行报错 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you ...