Unity在 TextMeshPro 中使用中文【转自 chutianshu / AwesomeUnityTutorial】

1. TextMeshPro 简介

TextMeshPro 包官方文档 最新版,请注意版本

2. 中文显示问题

Unity 的 TextMashPro 自带的几款字体都是英文字体,没有中文。

在 inspector 中设置中文,会显示成方块,无法正常使用

3. 问题解决方案

3.1 动态加载字体

  • 步骤 1 :
    下载字体,最好是开源字体,未来在项目中可以商用

    霞鹜自制开源字体下载

  • 步骤 2 :
    在 Unity project 窗口中,在 Assets 下新建 Fonts 文件夹,导入下载好的字体

  • 步骤 3 : 创建动态字体:选择下载好的字体,右键-Create-TextMeshPro-Font Asset
    创建好的动态字体,会根据你使用过的文字,自动存储到 Atlas 中。

3.2 静态字体

静态字体效率会比动态的高,适合文字较多时使用

  • 步骤 1 :
    下载一个 “常用汉字” 的 txt 文件,必须用 Unicode 编码保存,比如 utf-8,将其导入 Unity
  • 步骤 2 :
    在 Unity 菜单中,选择 Window -- TextMeshPro -- Font Asset Creator ,打开窗口
    • Source Font Flie,选择添加好的中文字体文件
    • Character Set:选中 Characters from File 从文件获取文字
    • Character File : 选中 txt 文件
    • Generate Font Atlas :点击按钮,生成静态字体图集(比较慢的一个过程)
    • Save:保存生成的字体 asset

在我的云盘中,分享了 16159 中文和符号 txt ,以及已经转换好的静态字体文件

下载链接:https://pan.xunlei.com/s/VMovVwhBhUQOnMxDnufbrVqRA1 提取码:3986

3.3 字体后备 Font Fallback

某些动态字体,在使用中文标点符号和一些特殊文字符号的时候,依旧会出现方块,这个时候可以使用 TextMeshPro 的 Font Fallback。Font Fallback 可以从另一个 FontAsset 中获取不包含在当前 FontAsset 中的字符。

可以用 Font Fallback 来外挂一些低频使用、或者特殊的符号、字体。




 

参考资料:

 


 

配套视频教程: https://space.bilibili.com/43644141/channel/seriesdetail?sid=299912

文章也同时同步微信公众号,喜欢使用手机观看文章的可以关注

posted @ 2022-04-11 15:23  yansirfuture  阅读(39)  评论(0编辑  收藏  举报