问题
Unity 项目从 5.x 升级到 2018,基于 TextMesh Pro 实现的字体图集生成工具,因为 TextMesh Pro 被 Unity 内置到引擎里,不再提供DLL,导致工具编译失败。
原因
代码发生了变化,字体图集生成实现调用了不开放的接口,比如:
GlyphLoadFlags glyphLoadFlags = ((GlyphRasterModes)m_GlyphRenderMode & GlyphRasterModes.RASTER_MODE_HINTED) == GlyphRasterModes.RASTER_MODE_HINTED ? GlyphLoadFlags.LOAD_RENDER : GlyphLoadFlags.LOAD_RENDER | GlyphLoadFlags.LOAD_NO_HINTING;
解决
Unity 2018 内置的 TextMesh Pro 通过包管理器来进行调用,如果需要对其进行扩展,就不要使用官方自行下载的 TextMesh Pro 包,而是拷贝出来,当做本地包。
然后扩展的代码,也写在本地包里,写在新建的文件夹,方便之后不干扰 TextMesh Pro 升级。
链接
Unity TextMesh Pro 文本组件之字体图集生成工具 https://blog.youkuaiyun.com/akof1314/article/details/84890933
https://github.com/akof1314/UnityTMProFontCustomizedCreater/tree/2018.3