Unity 学习笔记#3:TextMesh Pro 使用中文

Unity 学习笔记#3:TextMesh Pro 使用中文

Zahkrii Lv2

动态字体

导入字体,选择字体,右键 - Create - TextMeshPro - Font Asset 创建动态字体。创建好的动态字体,会根据使用过的字符,自动存储到 Atlas 中。但是当 Atlas 已经很大时,再新增一个字符,导致重建一张很大的 Atlas,就有可能引起卡顿。

除此之外动态字体经常无法正确显示中文,因此更适合用于字符量少的英文字体,对于字符量大的中文,制作静态字体更加合适。

22/12/10 更新:现在动态字体也能正确显示中文,可以无需建立静态字体。

静态字体

导入一个编码为 UTF-8 的存储常用汉字 7000 字的文本文档(3500 字,5000 字都行,根据实际需求选择)。

打开 Unity > Window > TextMeshPro > Font Asset Creator,拖入导入的字体到 Source Font File.

Atlas Resolution 根据字符量选择,越大越清晰。如果字符量很大需设置更高分辨率,默认 4096 x 4096. 当静态字体的 Atlas Resolution 设置过小,使用字体时放大字体,会有边缘粘滞模糊。

Character Set 选择 ‘Characters from File’, Character File 选择导入的文本文档。

Render Mode 选择 ‘SDFAA’.

设置完成点击 Generate Font Atlas. 等待一段时间后(根据字符量决定),生成 Font Asset. 最后记得点 Save.

Font Fallback

当本字体中缺少字符时,可以从设置的 Fallback 列表(同样是 TextMesh Pro 字体)中查找字符。基于这个特性,可以比较好地解决字体大贴图重建的问题。

创建一个包含常用文字的静态字体,并设置一个 Fallback 字体,并将 Fallback 字体设置为动态 Dynamic 字体,选择一个合适的贴图尺寸(不宜过大,降低重建贴图时的开销),并勾选 Multi Atlas Textures 参数。Multi Atlas Textures 参数允许创建多张 Atlas,当字体贴图超过尺寸上限,这时又要渲染新的字符时,就会再创建一张字体贴图,从该张贴图中获取字符。

  • 标题: Unity 学习笔记#3:TextMesh Pro 使用中文
  • 作者: Zahkrii
  • 创建于 : 2022/02/07 17:10:12
  • 更新于 : 2024/06/24 23:52:15
  • 链接: https://zahkrii.github.io/2022/02/07/unity-notes-3/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
此页目录
Unity 学习笔记#3:TextMesh Pro 使用中文