TextMeshPro使用

TextMeshPro 是 Unity 的最终文本解决方案
是 Unity UI Text 和旧版 Text Mesh 的完美替代方案
文档: http://digitalnativestudios.com/textmeshpro/docs/

全局配置

默认会创建一个全局配置,位于 Assets/TextMesh Pro/Resources/TMP Settings.asset
这个配置必须放在 Resources 目录下,且名字必须是 TMP Settings.asset

  • Default Font Asset
    默认字体配置,当Text没有指定字体或所需字符不在配置的字体中时都会使用默认字体
  • Path
    字体存放的路径,必须在Resources目录下,把创建的字体配置都放在这里
    只要把字体配置放这里就行,字体还是可以放在其它地方
    注意可以放在任意Resource目录下
  • Fallback Font Assets
    全局备用字体,就是某个字体如果找不到字符,并且在本字体的备用字体列表中也找不到字符时,就会在全局备用字体列表中查找
  • Default Sprite Asset
    • Default Sprite Asset
      默认表情配置,在 RichText 中可以省略 sprite=“xxx”,直接用<index=0>
    • Path
      表情配置存放路径,必须在 Resources 目录下,把创建的表情配置都放在这里
      只要配置放这里就行,表情图片可以放在其它地方
      注意可以放在任意Resource目录下

创建字体配置

不能直接使用字体文件,必须先基于字体文件创建配置

  • 创建字体配置
    有2种方法
    1. Project面板中在字体文件上右击->Create->TextMeshPro->Font Asset
      选中生成的配置后 -> 点击 Inspector 中的 Update Atlas Texture 打开 FontAssetCreator 窗口
      同方法2一样配置并生成字体纹理
    2. 菜单window -> TextMeshPro -> FontAssetCreator

FontAssetCreator配置

参考 http://digitalnativestudios.com/textmeshpro/docs/font/

  • Source Font File 字体文件,该文件只用于生成纹理,不会被打包
  • Padding 字体纹理中,文本间隔
  • FontSize 字体纹理中每个字的大小
  • Character Set 配置要添加到纹理中的字符,其它的会使用默认字体
    注意只有当字体配置中 Atlas Population Mode 设为 Static 时,才只添加 Character Set 中的字符到纹理中,并且字体文件不会打进最终包中,
    如果设为 Dynamic 则不需要配置 Character Set,因为会把字体打进最终包中,根据需要动态添加字符到Character Set中并自动生成纹理
    配置示例
    • Custom Range 32-126,150,161-255
    • Unicode Range(Hex) 20-7E,A1-FF
    • Custom Characters 01234567890 ABCDEFGabcdefg 中间包含空格
  • Render Mode 字体纹理生成模式,一般用默认就行
  • Get Kerning Pairs 从字体文件中拷贝特殊字符的间距信息,只有少数字体包含该信息
  • Generate Font Atlas 如果 Character Set 有修改,则点击重新生成纹理,然后才能保存
  • Save 生成并保存字体配置和纹理

字体配置FontAsset

参考 http://digitalnativestudios.com/textmeshpro/docs/font/
字体配置统一放在 全局配置 的路径下,方便RichText引用

  • Face Info
    字符信息,主要是排版相关参数
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    • Line Height 行高
    • Ascent Line baseline 到字符最上沿
    • Descent Line 负值,baseline 到字符最下沿
    • Cap Line 大写字母间距
    • Mean Line
    • Baseline 基准线,一般为0
    • Underline Offset
    • Underline Thickness
    • Strickthrough Offset
    • Superscript Offset
    • Superscript Size
    • Tab Width
  • Generation Settings
    字体信息,引用的字体文件,以及如何生成字符纹理
    • Source Font File 引用的字体文件
    • Atlas Population Mode 字符纹理生成方式
      • Static 静态,只添加 Character Set 中的字符到纹理中,并且字体文件不会被打包
      • Dynamic 动态,字体文件会被打包,根据需要动态添加字符到Character Set中并自动生成纹理
    • Atlas Render Mode
  • Font Weights
    用于配置粗体和斜体的字符显示
    纵向的代表粗体级别,横向代表该粗体级别下,正常和斜体的字体
    比如 你可以导入粗字体,并创建对应的配置,然后设置给 [800-Heavy,Regular Typeface],这样当 Text 组件设置为粗体后将用该字体显示,如果没有设置,则会使用下面的参数对当前字体进行处理来生成伪粗体
    • Normal Weight
    • Bold Weight
  • Fallback Font Assets
    备用字体列表,当需要的字符不在当前字体中时,会搜索备用字体列表,还没有则用unity默认字体
    用这个可以实现一些特殊效果,比如我使用字体A,但觉得逗号不好看,想使用字体B的逗号
    参考 常见效果实现
  • Character Table
    当前字符纹理中包含的字符
    可通过点击上方的 Update Atlas Texture 打开 FontAssetCreator 窗口重新生成
    也可以点击某个字符信息进入编辑模式
  • Glyph Table
    字符纹理中每个字符的纹理信息
    点击某个字符信息可进入编辑模式
  • Glyph Adjustment Table
    相邻字符的额外布局信息,可用于高级排版
    比如 A 和 V 2个字符相邻时,可以调整布局信息使之靠近点
    • OX 水平偏移
    • OY 垂直偏移
    • AX 水平间距

使用

主要提供了2个组件用于渲染文本

  • TextMeshPro
    配合 MeshRenderer 在场景中渲染

    • 快速添加对象
      GameObject -> 3D Object -> Text-TextMeshPro
  • TextMeshProUGUI
    配合 CanvasRenderer 在UGUI中渲染

    • 快速添加对象
      GameObject -> UI -> Text-TextMeshPro

Text组件

shader效果参考 http://digitalnativestudios.com/textmeshpro/docs/shaders/

  • ColorGradient
    颜色渐变
  • Underlay
    阴影效果
  • Glow
    描边效果
  • Lighting
    光学效果

RichText

参考 http://digitalnativestudios.com/textmeshpro/docs/rich-text/

表情

允许通过 RichText 嵌入 Sprite

  • 从美术获取包含多个表情的图片
  • 图片导入设置
    TextureType = Sprite(2D and UI)
    Sprite Mode = Multiple
    点击 Sprite Editor 划分好各个Sprite
  • 创建SpriteAsset
    Project 面板选中图片右击 -> Create -> TextMeshPro -> Sprite Asset
    生成这个配置后,图片你可以改成其它类型,因为每个Sprite的信息已经记录在SpriteAsset中
  • 在Text中使用
    • 引用 SpriteAsset
      1. 放在 全局配置 Default Sprite Asset.Path 的目录下,注意可以是任意的 Resources,后续通过文件名引用
      2. 放在任意位置,直接把 SpriteAsset 拖到 Text 组件的 ExtraSettings.Sprite Asset
    • 勾选 RichText
    • 文本中使用 SpriteAsset
      • 使用默认SpriteAsset
        默认SpriteAsset是下列配置中第一个有值的,优先级从高到低
        1. Text 组件的 ExtraSettings.Sprite Asset
        2. 全局配置 中的Default Sprite Asset
      • 使用非默认SpriteAsset <sprite=“assetName” name=“spriteName”>
        SpriteAsset必须放在 全局配置 Default Sprite Asset.Path 的目录下
    • 你会发现表情的中心点对齐到文本起始点
      可以通过调整表情配置中的 Global Offsets & Scale 来对齐

常见效果实现

  • 颜色渐变
    勾选 ColorGradient
    配置渐变颜色
  • 阴影效果
    勾选 Underlay
  • 描边效果
    勾选 Glow
  • 文本使用字体A,逗号想用字体B
    • 创建字体A的配置
    • 创建字体B的配置
      Atlas Population Mode 设为 Static,
      Character Set 中只添加逗号
      Fallback Font Assets 中添加字体A的配置
    • 在 Text 组件中,Font Asset 关联字体B的配置
  • 表情
    参考 表情
  • 艺术字
    参考 表情
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值