3.8.3关于Label的一个小小困惑

不是bug,
创建两个节点A,B
在两个节点下面分别创建两个label.
image

B节点缩小0.5倍,B节点下面的label字体大小调整为A节点下面字体大小的两部.



理论上两个lable这个时候是一样的.但实际不一样.感觉B节点下面的label更清晰.

为什么会这样子呢?

预览呢?对编辑器里面的要求别太苛刻,能用就行,本来就有一些小问题,跑起来就行

我试了一下 预览也是有这个问题

引擎根据 fontSize 决定生成的纹理尺寸

1赞

预览跟实际跑起来,都是这种情况。
不是苛刻,只是好奇原因~~~~

大就清晰??但节点缩小了。视觉上应该会一样才对。

魔鬼都藏在细节里面。如果能把原因弄清楚点,我们写起代码来,会不会更好

因为引擎根据fontsize去把字渲染到一张纹理里,一个fontsize小的再拉大,肯定就模糊了。话说3.8开始的高清字体就是引擎通过view的scale去修改了fontsize,从而达到高清字体。按道理也可以通过该节点worldScale去修改,但可能比较好性能吧。

我这里是这样的情况,按你的操作之后预览,在100%大小预览的情况下两者没什么区别:
111
预览大小调到400%之后有区别:
2222
原因估计是下面的是按大尺寸渲染再缩小,所以清晰度好一点。再刷新一下,还是400%,又没有区别了:


所以正常预览下,不调节预览的缩放,两者是没有什么区别的,每重新渲染一次,都会以最佳效果显示,一般玩游戏过程中不会去放大尺寸看,就算放大,刷新一下或第二次进去也正常了。所以就不用纠结这个了。

小于24得字体 如18-- scale = 18/24 = 0.75 这样就不会模糊

用极限法来想,如果你的fontsize设置成了非常小,你的文本就缩成了一团到一个像素去了,这时再给它放大,获得的是一团模糊。
简单来说结论就是,fontSize大一般来说会比较清晰。因为占用的像素更多。

你觉得最终大小一样,所以表现应该一样,问题在于你认为文本是实时渲染的。如果是这样,那么尺寸等参数一样的情况下,最终的确会显示一样。但实际上,文本是先渲染到了一张纹理里,然后去读取显示的。所以fontsize决定了它的清晰度。

:rofl: 昨天刚试了U3D家的,一样效果~~~~~
哈哈