虽然网上有很多这样的使用方法,但是基本上有一个很大的前提,就是你可以很顺利的做出来。即便一开始能顺利做出一套艺术人物,也难保在以后的制作中不出现。问题。被骗了几局后unity使用字体,我也决定整理一下这些容易漏掉的地方。
让我们按照基本步骤进行操作。
1、第一步准备好大小相同的图片字符。图片大小不一致的问题会很明显,最后的文字切割也会乱七八糟。一般32*32的艺术字就够用了,不容易变形。
作为补充,后来发现大小不一定要一样。
2、FontSettings设置字体的一些基本参数。这个设置比较重要,尽量在前面做。需要注意的是游戏策划,选择合适的字体才能支持显示你需要的所有字符,否则很容易导入文本失败。设置完成后,您可以通过下面的菜单选项直接从文本文件中导入字符。
同时需要注意字符文本的字体和编码格式。通常unity使用字体,utf-8 就足够了。如果包含中文,还必须保证字体编码是GB2312,否则文本导入还是会漏中文。
3、下面是导入文字后的效果。我只得到了数字。一个很可悲的问题是,如果我们要制作带有自定义纹理的文字,文字只能一个一个地手动赋值。如果汉字很多,一次性导入会很伤心。选中的文字会变回来,表格右下角是字符的代码。
4. 下一步是为文本分配图片。直接编辑,打开ImageManager,可以直接给文字赋一张图片,ID是文字的十进制编码值,这里还有一个不舒服的地方,图片明显无效!可能是图片名称或路径中含有汉字,还是需要改一下。
5.指定图片后,最好确认没有赋值错误。
6.可见工具可以预览完成的字体:
7、确认无误后,就可以导出字体文件了,返回Unity,使用自带的Bitmap font make工具指定我们导出的字体文件和贴图,然后制作自己的字体。
来看看你做出来的字体效果吧!
还有一些额外的东西:
1. 如果后面更新了字体的纹理或者内容,必须手动重新分配原字体的这些属性。为什么?呵呵,我也被骗了。虽然这里的 Import Data 是 None3D素材,看起来是空数据,但是如果不赋值就更新 RedNum 的字体文件,最终显示的字体会乱七八糟。
2、另外Unity中字体的贴图大小不能随意修改,PixelRectangle必须和字体PNG的大小保持一致。
3、如果在给图片赋值的过程中更改了字体或者代码,可能会把原来的图片和ID索引弄乱,需要小心。