问题
Unity 中TMP_Text 文字显示异常大多可分为两种情况。①制作TMP 字体选用的文本不包含该文字;②制作TMP 字体选用的ttf 源不包含该文字。
第一种情况,制作TMP 字体选用的文本不包含,只需在选用的Charater File 中添加再重新生成即可。
第二种情况,制作TMP 字体选用的ttf 源不包含,简单的方法为更换包含该文字的字体,如不想替换字体则需要对ttf 文件进行编辑修改。
利用FontCreator 在ttf 中添加文字
新建一个文本文档,在文本文档中输入需要添加的文字,输入完成后按字符截图保存。
使用FontCreator 打开ttf 文件。
点击插入字符,在Find by Charater 中输入字符,查找完成后点击Add 添加,添加后点击OK 该字符就会自动添加在所有字形末尾。
*添加字符时如Add 处于不可点击状态则说明该字符已在所有字形中存在,则需要找到该字形进行编辑或删除重添加。
添加完成后,可以看到新添加的字符是个?的符号。右键点击展开菜单,点击Import Image 导入字符对应的截图。弹窗右侧为识别的字符文字,调整数值使字符更清晰。点击Generate 生成。
生成字符后双击可对字符进行调整,也可在右侧的Glyph Properties 中进行调整。
编辑调整完成后,点击File →Export Font As →Export as Desktop Font 导出。
重新生成Font Asset
将修改后的ttf 导入Unity,Window →TextMeshPro →Font Asset Creator 重新生成Font Asset。
Font Asset Creator - Error Code [Invalid_File_Path] has occurred trying to load the [SimHei-Regular] font file. This typically results from the use of an incompatible or corrupted font file.
ttf 文件路径不能包含中文,调整ttf 文件路径。