解决Unity3D的新版TextMeshPro(TMP)无法显示中文方法。(乱码、口口、框框)
【优点】
TextMeshPro(TMP0比旧的Text功能强大。
高分辨率下字体清晰。
缺点是体积到几十MB。
【总结】
1、下载一个新的字体文件,要TMP能用。
2、拖动到UNITY3D的项目里。
3、对【项目】里的字体点【右键->创建->3D->TextMeshPro->字体资源】
4、会生成一个新的文件在同项目同目录下。图标应该是蓝色的大大的F。
5、选中新字体文件后,观看你UNITY3D的画面右方,观看【检查器】窗口的【Generation Settings】项目【ATLAS POPULATION MODE】栏目里,设置为DYNAMIC(英文是动态的意思)。原本是静态是无效的,要设置动态才有效。
6、可以修改上一条的ATLAS WIDTH和ATLAS HEIGHT的字体长宽高(建议8192)。也可以点击【检查器】的右上角的【UPDATE ATLAS TEXTURE】,进入后再修改【ATLAS RESOLUTION】为8192。这是修改字体大小,保证高分辨率下字体会清晰。
7、修改后,点击【GENERATE FONT ATLAS】生成,之后记得再拉下去看,再点击【SAVE】保存。
8、这个时候字体已经生成好了,打开你的TEXT(TMP)文本栏,观看【检查器】的【Font Asset】栏目,选中你刚生成的字体,就可正常显示中文】
【错误例子】
2-1、字体必须英文目录,否则会出错。
2-2、生存字体前的TEXT(TMP)可能出BUG,删除后再创建一个就好
2-3、法律规定字体有版权,用商用字体会赔钱和下架,记得使用免费字体。
2-4、使用https://fonts.safe.360.cn/ 可在线查电脑安装的字体是否免费可商用字体。可在B站查可免费商用字体,
2-5、但我只推荐使用谷歌制作的思源字体(一个字体包含日文、韩文、简繁中文)。你制作游戏必定必须考虑多语言。像手写体什么的字体就只包含中文无法包含多国语言。
思源黑体谷歌下载:https://github.com/adobe-fonts/source-han-sans
我分流度盘下载: