在unity6里安装fgui之后,在宏里添加FAIRYGUI_TMPRO之后,demo场景里面的文字全部消失了。经过好几天的调查和谷主的提醒之后,发现是TMPFont类里的GetCharacterFromFontAsset方法,从加载的tmp里获取字符返回的是空。
在自己测试写了代码可以从这个tmp里正常获取字符之后,发现是因为传入的FontWeight类型的这个参数导致的。fgui代码里面默认的fontweight 是Medium,而在unity6版本里的text mesh pro生成的tmp,默认的是regular的fontwight。在6之前的版本,是默认兼容不同的weight都可以获取到对应的字符,但是在6里面,如果tmp的属性面板的font weights没有设置的话,那就是返回空了。所以,要么把fgui默认的fontweight改成regular。要么就是在tmp面板上把对应的fontweight设置上去,就可以正常显示了。