关于TextMeshPro 1.4版本对中文支持不友好 方案【Font Fallback 和Dynamic SDF System】

新年第一篇文章, 新年快乐。 

中国放假一周, 但是国外可没有啊, 有很多博客的更新,很多技术发布新版本。

--------------------------------------------------------------------

关于TextMeshPro 介绍自己了解吧。

在Unity 2018中充分使用TextMesh Pro

钱康莱的分享    http://qiankanglai.me/2017/03/01/unity-textmeshpro/index.html 

UWA问答: https://answer.uwa4d.com/question/5a4deec4ecb4a02cff5039d3       

 

之所以说对中文支持不友好是因为 中文文字太多了,全部放到一个纹理上会导致每个字很小,精度不够。因为本身文字就很少肯定没问题。         所以之前有的游戏项目中并不是所有地方都使用TextMeshPro, 比如玩家起名字,玩家名字显示等地方就使用正常的字体。开发可控的地方在使用TextMeshPro.  

 

1、 先说 Font Fallback  (之前版中已经存在了)

中文 :回退系统

        如果生成的字体图集缺少部分字符,每当输入这些字符时,TextMesh Pro会使字符回退到默认字形,你可以在Edit > Project Settings > TextMesh Pro Settings修改该字形。

        你也可以设置一个或多个字体资源,当字符无法在主要图集中找到时,TextMesh Pro会将字符回退为这些资源中的字符。出于优化目的,可以使用高分辨率的主要字体图集,而所有回退图集则使用较低分辨率。

        你可以使用TextMesh Pro设置来设定字体和材质或图片精灵资源在Resources路径中的位置。

        使用富文本时,你可以插入一个精灵,具体根据你在设置中定义的可用主精灵资源。最简单的方法是导入精灵图集,然后在精灵编辑器中进行切分,右键点击该资源,选择Create > TextMesh Pro > Sprite Asset。

        你可以自定义资源的偏移或轴心等设置。相同的,如果在主精灵资源找不到指定精灵,你可以设置一系列回退精灵资源(Fallback Sprite Asset)用于回退。

 

 

2、 Dynamic SDF System   (Unity 2018.3   Text Mesh Pro 1.4 preview中添加的新功能)

因为SDF AA使字体纹理生成速度超快。在运行时从字体(otf等)中获取字符,并使它们可用于游戏。很有吸引力的是,可以使用具有接近Unity标准动态字体的可用性的字符。

  1. Window >TextMeshPro >FontAssetCreator 创建 FontFontAsset资源
  2. 选择 FontAsset
  3. Generation Settings 
    • Source Font File指定字体文件(otf等)
    • Atlas Population Model  设置为 Dynamic 
    • Atlas Render Mode 设置为  :SDF AA
    • Sample Point Size是大约72 
      (取决于字符的分辨率,字体将很快填充)
    • Atlas WidethAtlas Height 
      (取决于可显示的字符)
  4. 按Apply

关于TextMeshPro 1.4版本对中文支持不友好 方案【Font Fallback 和Dynamic SDF System】

关于TextMeshPro 1.4版本对中文支持不友好 方案【Font Fallback 和Dynamic SDF System】

关于TextMeshPro 1.4版本对中文支持不友好 方案【Font Fallback 和Dynamic SDF System】