問題
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 文件路徑。