关于BMfont无法导入自定义中文字符的解决方案

项目中为了解决字体不漂亮的问题,所以采用了使用BMfont创建字库的方案。(因为涉及到的字很少)

之前就用过BMfont,但是只是解决数字和标点符号的字库问题。

后来听同事说,中文字符也可以使用BMfont整理。

随后,就在网上找了很多资料做参考。

虽然有很多详细的资料,但是中文字体的导入还是未能实现。

并不是说BMfont不支持,而是在网上找到的资料中都是你搬我,我搬他,千篇一律。都是错的。(暂且认为是错的吧,因为我按照同样的步骤操作,从来就特么没成功过。。。。。)

后来也是没辙了,瞎尝试,还真成功了。so,分享出来,希望能帮助到同样需要该解决方案的同学们。


正如正题


第一步,创建一个txt文件。这个都是统一的,大家都知道。如下图。

把需要使用到的字体整理到该txt文件里

第二步,保存。这里是本文最重要的步骤。保存编码为UTF-16LE(UTF-16BE是否也可行,我没去尝试。有兴趣的同学可以去尝试一下!)。以前查到的资料都说是保存到UTF-8编码,带头的和不带头的都试过,没成功过。存储文件的文件夹地址不能包含中文字符。否则无法找到。

保存txt文件的编码为UTF-16LE

第三步,导入字库 text.txt 文件。因为导入成功,没有任何提示,导入失败的话,会有弹出框告诉警告。导入字体后,会覆盖已有的字库选择。如果还是觉着不放心可以先执行Clear all chars in font。

导入字符库文件

第三步,预览字体库是否导入成功。

单击此处查看导入结果

下图中有一些自定义的字符未显示出来。是因为你设置的导出尺寸有问题。


导入成功,但是未显示全部

第四步,改变导出尺寸。设置导出尺寸为256*256,再次预览,就没问题了。

更改导出设置
设置尺寸为256*256


重新预览,成功

第五步,保存(名字随意,最好是英文。),生成字典。生成两个文件1.fnt 和 1_0.png。

保存

第六步,使用记事本打开1.fnt文件。

1.fnt的内容

根据1.png的位置和1.fnt中的内容,即可获取中文字符的charid。剩下的就不用说了吧。



好了,说了这么多,应该能表达清楚了。

希望能帮到被这个大坑扭过腰的人。

你可能感兴趣的:(关于BMfont无法导入自定义中文字符的解决方案)