Unity TextMeshPro的字体消失的问题

第一次遇见以为是个bug,既然我纠结了一段时间,那么我相信还会有其他人会碰到。


首先这里默认你已经创建好了一个字体。

如图,左边是创建好的字体。右边是原字体。

如果不知道怎么创建的话,快速创建步骤,右键原字体-> Create->TextMeshPro->FontAsste。

一般来讲这是第一次使用TextMeshPro导入中文字体使用的正常步骤。

————————————————————————————

选中你的字体看一下它的设置,注意这个地方,动态

这也是默认的字体设置,如果不明白这个动态是什么意思的话,展开那个箭头。

 这个黑色的贴图是把你字体第一次挂在Text上生成的,它是一个画布,下一步你就知道这有什么用了。

 这个时候,在Text上输入了第一个汉字,回头再看下上边的贴图。

你会发现你打的字被印上去了。

关键点就出现了。

这种动态字体在你输入没记录过的字体时,会把它印在这个图上。

那么问题来了,不妨设想一下,这个图满了会怎么样,就像这样 。

 没错,字体不会出现了,因为已经放满了,然后你打的字只要在这个画布上没有,那么就不会显示出来。

就会出现这种bug。

 左边缺少的字就是因为那是画布上不存在的字,却有没有地方把它印上去了,于是就GG了。

那么如何解决呢。


1,创建静态字体。

动态字体是使用时创建,静态字体是一开始就创建好,用的时候直接拿就行了。

Window->TextMeshPro->FontAssteCreator打开这个面板。

这两个地方决定了你的画布能放多少字,可以权衡一下。

这样生成的画布是64M,虽然字很多但...自己斟酌吧。

生成字体,保存字体,然后用起来就行了。

2,扩大画布

如果不这样做,还可以直接在你已经到上限的字体上直接更改设置。

3,勾选多图集纹理(新增于2023/2/13,未测试过,应该能解决问题)


其实当你知道事情是怎么发生的时候就已经知道怎么解决了,一开始我就很迷,不知道问题如何产生的,以为无脑用就行了。

造孽。

猜你喜欢

转载自blog.csdn.net/qq_41886896/article/details/123392322
今日推荐