最近一直在搞Unity客户端的优化,发现了冷加载界面的字体只用到了指定的文字,但是字体文件很大,内存消耗也很大,必须精简,如何把8M的字体精简到几十K呢?
1、FontSubsetPack使用方便,但是有一定的不足,我选择了FontPruner
FontSubsetPack下载地址:https://download.csdn.net/download/yaukeywang/10012038
使用方法:
2、FontPruner下载地址:https://github.com/yaukeywang/FontPruner/tree/extend
由于是python的源码,需要pycharm运行代码执行,需要安装python和pycharm以及搭建必要的环境。
下载好了以后,打开项目,print输出没有括号,报错
python2.0之前的写法,我安装的python3,所以需要补上()括号,
print("path = " +path),当然删除log也可以。
1、复制需要生成字体源文件到根目录
2、加入字体文件需要保留的文字到txt中,找到src/FontExtract/unChineseOutPut.txt 在这记事本内填入你要保留的文字 保存
3、复制命令:FontPruner.py --inputPath=./ --inputFont=./simkai.TTF --tempPath=./
切换到cmd窗口,粘贴命令,修改simkai为你的字体名字,然后回车,开始生成字体
生成成功
大小对比:
导入到unity开始使用吧,有个小问题就是,其实这个字体也包含了所有的字体,但是不是我们输出的文本里面包含的文字,显示方式还是有很大差别的,具体看下面的图。