unity切换TextMesh的Font之后,文字错乱

来源:互联网 发布:oc 链式编程 编辑:程序博客网 时间:2024/06/04 18:11

最近在弄多语言,发现游戏中的字体库里面没有俄文导致显示俄文的时候不正常,没办法,只能切换语言的时候也切换支持俄文的字体库了,项目中使用NGUI的UILabel的地方,直接切换label.bitmapFont = realFont;就搞定了。没想到使用了TextMesh的地方,直接label.font=realFont;之后,文字显示就错乱了。如下图:


弄了大半天,考虑是不是Font.textureRebuilt的问题,发现这个事件根本就没调用。

最后终于发现了其中的猫腻...




原来切换之后,MeshRender里面的Meterial关联的还是旧字体的Meterial,因为Meterial不一样,里面的纹理也不一样,所以难怪会错乱。

知道问题就好办了,切换字体的时候,顺便修改下MeshRender的Meterials就搞定了。

if (label.font!=realFont) {label.font = realFont;//修复替换字体后文字错乱MeshRenderer meshRender = label.GetComponent<MeshRenderer> ();if (meshRender != null) {meshRender.materials = new Material[]{ realFont.material };}}


原创粉丝点击