您现在的位置是:首页 > 正文

TextMeshPro使用说明 热门推荐

2024-04-01 00:27:20阅读 1

创建字体

TextMesh Pro无法像UGUI Text那样使用动态字体,因为TextMesh Pro需要对字体进行预处理来计算SDF,这部分计算非常耗时。这对于英文字体来说影响不大,一个字体文件或一张贴图包含的信息都很少,但是对于字符非常多的语言如中文就影响很大。

  • 对于游戏中显示的文字可以使用TextMesh Pro的SDF字体,提高显示效果和特效处理。
  • 对于游戏中的输入框建议使用UGUI自带输入框,使用动态字体。

创建SDF字体文件的过程如下:

  1. 菜单栏打开Window > TextMeshPro > Font Asset Creator
    创建SDF字体

  2. 在Font Source中选择你想要创建的字体

  3. 在Character Set中选择要生成的字符集

  4. 其他选项根据需要进行设置(下面会详细说明每个属性的作用)

  5. 点击下方的Generate Font Atlas按钮生成字体

  6. 生成结束后记得点击Save保存**

Font Creator窗口属性

Font Source 选择要创建SDF字体的源字体

Font Size 创建字体的字号的大小。

  • Auto Sizing 建议使用该选项。根据给定Atlas Resolution(图集分辨率)来计算并使用最大字号
  • Custom 自定义字号

Font Padding 图集中每个字符之间的间隔,以便在渲染时能却分他们的边缘。此外padding也用于文字的特效,所以不宜过小;但是也不宜过大,过大会造成更大的atlas分辨率或者atlas上能承载的字符更少。对于512*512的图集,padding为5通常比较合适。

Packing Method 打包方式

  • Fast 可能计算出不是最大的字号,但是计算速度会快一些
  • Optimum 可以计算出图集上能承载的最大的字号
  • 通常在测试设置时使用Fast,在最终打包时使用Optimum

Atlas Resolution 使用SFD字体时,更高的分辨率会产生更精细的渐变,从而产生更高质量的字体。其中Atlas Resolution很关键,其大小决定了能有支持多少汉字,字体的清晰程度。

Character Set 字体文件中的字符不会自动包含在字体资源中。你必须指定你需要的那些。你可以选择一些预定义的字符集,也可以自己提供字符列表。

  • ASCII 大小写字母+数字+常见符号
  • Extended ASCII 包含所有的ASCII字符
  • ASCII lowercase 小写字母+数字+常见符号
  • ASCII uppercase 大写字母+数字+常见符号
  • Numbers + Symbols 数字+常见符号
  • Custom Range 使用十进制来制定字符的编码范围,可以使用减号和英文逗号来指定范围,如32-126,161-255

Character Set设置

  • Unicode Range(Hex) 使用16进制来制定字符的编码范围,可以使用减号和英文逗号来指定范围,如20-7E,A1-FF
  • Custom Characters 自定义字符,直接输入对应的字符
  • Characters from file 从外部文件中导入字符

注意要包含空格字符,除非确定你不需要它

Font Style 你可以选择几种不同的字体样式。这些设置仅适用于位图字体。
你可以通过shader配置SDF字体的样式,可以选择粗体、斜体、粗体加斜体和描边,也可以控制粗体和轮廓的强度。

Font Render Mode 距离场模式创建SDF纹理需要与SDF shader一起使用。字符是在高分辨率下采样来创建良好的渐变。16x是默认值并且足以用于大多数情况。32x生成较慢但可以让复杂或小字符产生更好的质量。
其他模式直接将字符渲染为位图,以便与位图字体一起使用。Raster模式不使用抗锯齿,Smooth模式使用抗锯齿。两者都有一个Hinted模式,它将字符像素与纹理像素对齐以获得更清晰的结果。

Get Kerning Pairs? 你可以选择从字体中提取字距数据。此数据用于调整特定字符对之间的间距,以产生更好的视觉效果。但是请注意很多字体没有字距数据。

设置全局默认字体

第一种方法

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

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

第二种方法

找到TextMeshPro的设置文件,默认就在(你的项目)/Assets/TextMesh Pro/Resources中一个叫TMP Settings的文件。修改TMP Settings中的Default Font Asset即可。

第二种方法

精灵字体

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

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

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

动态字体扩展

因为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 设置为 :SDFAA
  • Sample Point Size是大约72 (取决于字符的分辨率,字体将很快填充, 如果太大,该图集将会很快填满)
  • Atlas Wideth,Atlas Height (取决于可显示的字符)
  1. 按Apply
    动态扩展字体

原理

基于TextMeshPro1.4.1版本,收集当前显示所需的动态文本,利用font.TryAddCharacters接口进行生成字体图集。

使用方法

使用方法

推荐相关组件

  • TextMeshProUGUI_Dynamic
  • TextMeshPro_Dynamic

组件源码地址

GitHub:https://github.com/akof1314/Unity-TextMeshPro-DynamicText

网站文章

  • 大数据中的hbase是什么?有哪些特点?

    大数据中的hbase是什么?有哪些特点?

    与2018年夏季天气同样火爆的就属大数据了,作为一个可以敢和太阳肩并肩的新事物,大数据火爆、受人关注,在各个领域都有实际的应用。如今,无论是企业、商家还是个人对于大数据的关注都丝毫没有降低,那么对于大数据这个新兴高科技产物,你对hbase的了解有多少呢? 首先,我们从概念上了解什么是hbase HBase其实一个缩写,是Hadoop Database的简称,从问世之初,就为了解决用大量廉价...

    2024-04-01 00:26:56
  • 代码随想录训练营第III期--038--python

    代码随想录训练营第III期--038--python

    2024-04-01 00:26:49
  • 大厂程序员都在用VS Code远程开发工具,手把手教你配置,工作效率提高十倍

    大厂程序员都在用VS Code远程开发工具,手把手教你配置,工作效率提高十倍

    文章每周持续更新,原创不易,「三连」让更多人看到是对我最大的肯定。可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇)今天和大家分享远程开发工具,分享一下我平常是如何用 VS...

    2024-04-01 00:26:42
  • 【2023.11 | github学生认证 | 解决没有proof type选项问题】

    【2023.11 | github学生认证 | 解决没有proof type选项问题】

    可能因为bug问题,根本找不到proof type选项。

    2024-04-01 00:26:17
  • 招人,我们是认真的 ——“阿里云-ECS/神龙计算平台” 急招开发

    招人,我们是认真的 ——“阿里云-ECS/神龙计算平台” 急招开发

    点击上方蓝色字体,关注我 ——一个在阿里云打工的清华学渣!图 by: 石头@阿里云北京办公场所前言招人,我们真的是认真的,看下面两篇“阿里云” 公众号的文章,虽有好几万的阅读,却并没收...

    2024-04-01 00:26:09
  • 计算出1+2+3+..+100的结果。可以使用多种方法解答。

    计算出1+2+3+..+100的结果。可以使用多种方法解答。

    计算1+2+3+...+100的结果。以下使用多种办法: 方法1:for...do...done的数值处理 方法1:for…do…done 的数值处理 sum=0 for ((i=1;i<=100;i++)) do ((sum+=$i)) done 其余各种方法,个人比较推荐第五种算法 1 方法2:for…do…done (固定回圈) 2...

    2024-04-01 00:26:03
  • Scala学习笔记(二)

    一、函数1. 定义函数// 用def关键字定义一个函数 // 格式 def 函数名(参数名 : 类型): 函数返回值的类型 = {}def main(args: Array[String]):...

    2024-04-01 00:25:56
  • 如何打包谷歌插件

    如何打包谷歌插件

    第一步 浏览器输入以下,按回车 chrome://version/ 找到 个人资料路径 复制 第二步 快捷键 win+e 把剪贴板中的粘贴到地址栏,按回车 找到这个文件夹 或者ctrl+f 输入Extensions按回车 第三步 浏览器进入chrome://extensions/ 选择要打包的插件 观察id 在第二步的文件夹中找到以上面id...

    2024-04-01 00:25:31
  • 如何创建一个Vue工程

    如何创建一个Vue工程

    (1)以管理员身份打开命令行界面,进入任意一个想要创建项目的文件夹,输入。如果出现版本号,说明我们成功安装了nodejs。出现以下版本号,说明我们的环境安装成功。(2)你的第一个vue项目页面就创建好...

    2024-04-01 00:25:24
  • WebApi测试工具 Postman

    WebApi测试工具:Postman转载于:https://www.cnblogs.com/lgq880821/p/11591964.html

    2024-04-01 00:25:16