Unity学习笔记——TextMeshPro使用详解

2023-10-29

https://blog.csdn.net/elineSea/article/details/88799896

 

TextMesh Pro是Unity默认文本组件的替代品。TextMesh Pro和默认组件一样拥有高性能,它使用了完全不同的Signed Distance Field(SDF)渲染技术,该技术最初由Valve在《军团要塞2》中使用。TextMesh Pro能够很轻松就能让文本看起来更美观,还提供了更高级的控制功能,你可以通过检视窗口和脚本控制文本效果。

当你在项目中使用TextMesh Pro,它拥有改进的视觉效果。由于使用SDF渲染技术,你可以轻松修改文本的效果,无需重新制作字体。每个TextMesh Pro组件都附带可以调整的材质,从而修改文本的风格。TextMesh Pro还具有更好的控制功能。TextMesh Pro组件包含所有原始文本组件拥有的变量以及更多其它变量。

一、有两个TextMesh Pro组件可用:

1.  添加一个新的TextMesh Pro文本对象,它与网格渲染器一起工作:“GameObject->3D Object->TextMeshPro Text”。

2. 添加一个与新UI一起工作的TextMesh Pro组件,请转到:“GameObject->UI-”> TextMeshProText”

二、TextMesh Pro组件分为两个部分:文本输入( Text Input Box)和字体设置( Font Settings)

1.文本输入Text Input Box

在此区域键入要呈现的文本。可以输入多行文本,在键盘上按<Enter>或输入特殊字符\n。

<b>Bold</b>
<i>Italics</i>
<u>Underline</u>
<s>Strikethrough</s>
<sup>Superscript</sup>
<sub>Subscript</sub>
<size=48>Point size 48</size>
<size=+18>Point size increased by 18</size>
<size=-18>Point size decreased by 18</size>
<pos=5.5>Characters positioned about 5.5 characters from left side.
<color=yellow>Yellow text</color>
<#00ff00>Green text</color>

2.字体设置Font Settings

Font Asset:这是TextMeshPro字体资源。
Font Style:对文本应用全局样式,粗体、斜体等
Vertex Color:将被指定为顶点的颜色,每个字符的颜色(除非有颜色,已指定标记)
Color Gradient:启用顶点颜色渐变
Override Color Tags:启用覆盖颜色标签。
Font Size:字体大小。
Auto Size:动态调整点大小。在最小值和最大值之间,以适应文本容器的大小。
Character Spacing:控制单个字符之间的间距。
Spacing:允许调整字符、行和段落间距。
Alignment:控制文本的对齐方式,选项有左、中、右和对齐。
Enable Word Wrap:启用或禁用换行。
UV Mapping Options:控制纹理(面和边框)如何映射到文本对象;
Enable Kerning:如果在字体资产的字距表中定义了字距对,则启用或禁用字距。
Extra Padding:非常小的字体可能需要额外的填充。这种额外的填充可以防止字符被剪。
三、Material Editor & Shaders

TextMeshPro包括几个自定义着色器以及一个自定义材质编辑器,旨在通过只公开那些预期的属性来保持事情的简单性

修改。有两组着色器,其中包括位图着色器和一些符号距离字段着色器。TextMeshPro的着色器可以在“TextMeshPro/…部分着色器列表中材料组件。http://digitalnativestudios.com/textmeshpro/docs/shaders/是SDF着色器的列表和简要描述。更新的材质

这里也有相关信息。

Distance Field Mobile:

这个轻量级着色器只包含最基本的特性,并提供了最佳的整体性能。

Distance Field:

这个更高级的着色器包含了大量的特性选择。它是默认分配给all的着色器带符号的距离字段字体资产。它仍然提供出色的性能。
Distance Field Surface:

这个着色器包含了与距离域着色器本质上相同的特性。它使用场景灯,代替使用模拟照明。这些文本对象也可以投射阴影,这个着色器使用每个像素的照明。


Distance Field Surface Mobile:

这是一个轻量级版本的表面着色器与有限的功能。它使用每个顶点的光照而不使用来自灯光的方向信息。它考虑到了光的距离。

四、材质编辑器功能面板(Material Editor Feature Panels)

定制使用的每个特性面板的概述材质编辑器。单击这些面板将隐藏或显示它们的特性,其中一些面板需要启用它们的功能。不同的面板将提供各种着色器。

Face Panel:
 


Color - 选择字符表面的颜色和透明度。(该颜色将与顶点颜色相结合。)
Texture - 选择要应用于字符表面的纹理。(颜色会影响纹理的颜色,如何应用纹理中的映射选项控制到字符/文本对象

编辑器面板。纹理选项不是在所有着色器上都可用。)
Softness -控制字体的柔软度。
Dilate -增加或减少字符的大小。

Gloss -控制字符表面的亮度。

Outline Panel:

Color - 控制字符轮廓的颜色和透明度。
Texture -选择要应用于字符表面的纹理。(颜色会影响纹理的颜色,纹理如何应用于字符/文本对象由编辑器面板中的映射选项控制,纹理选项不是在所有着色器上都可用。)
Thickness - 控制轮廓线的厚度。
Gloss - 控制使用表面着色器时字符表面的光泽。

Underlay Panel:
下划线可用于向文本对象添加阴影或边框。


Color - 控制衬底的颜色和透明度。
Offset (X, Y) - 控制衬底的位置。
Dilate - 增加或减少衬底的尺寸。
Softness - 控制衬底的柔软度。

Bevel Panel

内外斜面两种类型模拟三维斜面在二维物体上的视觉外观。


Amount - 控制斜面的应用数量
Offset -控制斜面相对于字符表面边缘的位置。
Width - 控制斜面效果的宽度。
Roundness -确定斜面脊线是尖锐的还是圆形的。
Clamp -限制斜面的高度。

Lighting Panel

灯光设置控制斜面、凹凸和的外观的环境映射。


Light Angle - 控制光线的角度。
Specular Color - 高光的颜色。
Specular Power - 控制高光的强度。
Reflectivity Power - 控制反射光的数量。
Diffuse Shadow - 增加或减少物体接收到的光量。
Ambient Shadow - 控制光线和斜面边缘的显示效果。

BumpMap Panel
Texture - 应用于文本对象的法线映射。


Face -控制要应用于字符表面的凹凸映射的数量。
Outline - 凹凸贴图应用于字符轮廓的数量。
EnvMap Panel


Color - 颜色将使环境地图变亮、变暗或着色。默认颜色为黑色,不影响文本对象。
Texture - 应用于文本对象的多维数据集映射
Glow Panel


Color - 辉光的颜色和透明度。
Offset - 控制辉光的位置。值0.0位于字符表面的边缘。
Inner - 控制辉光效果
Outer - 控制辉光效果向外部延伸的距离。
Power - 控制辉光效果向脸部外部延伸的距离。

五、Font Asset Creator Overview

创建方法: “Window->TextMeshPro Font AssetCreator”.

Font Settings
 


Font Source :是选择要创建资产的字体的地方。
Point Size :手动选择字体的大小,也可以使用Auto调整大小模式,该模式将在给定的图集分辨率中找到尽可能大的字体大小。
Font Padding 确定每个字符像素单位之间的空间大小。

Atlas Resolution:图集分辨率决定字体图集的大小。对于大多数字体其中包括完整的ASCII字符集,大小通常为512 * 512。对于带符号的距离字段渲染模式。

Character Set: 确定字体图集中包含哪些字符。

Custom Range_允许您定义一个表示要包含哪些字符的范围。要定义包含ASCII集和拉丁补充字符的范围,用户需要输入
32- 126,161 -255在自定义范围窗口。

Custom Characters_ 允许用户通过输入自定义字符窗口来指定要包含的字符。
Characters from File _用户能够提供一个纯文本文件,其中包含要包含在图集中的所有字符。

Font Style: 选择是否将创建粗体、斜体或大纲,以及定义大纲的厚度或粗体。
Font Render Mode :确定将如何呈现字符。

Hinted Smooth_ 是带有提示的反锯齿呈现。
Smooth_ 没有暗示也是一样的.
Raster Hinted_ 在不使用提示反混叠的情况下呈现字符.
Raster_ 没有反锯齿或提示。
 Distance Field 16_ 创建标准模式地图集。字体将被采样16倍,以产生一个更准确的签名距离场地图集。
 Distance Field 32_ 与上面相同,但是采样量是32倍以上。使用这种模式将导致一个更准确的SDF图集,虽然更准确可能只提供微妙的视觉改进。当试图将一个完整的ASCII集放入一个小的256 X 256图集或处理具有高频曲线变化的复杂形状的字体时,应该主要使用此选项。

Get Kerning Pairs :确定是否将字体文件中可能存在的字距对添加到字体资产中。如果在字体文件中没有找到字距对,则始终可以在TextMeshPro字体中添加新的字距对资产编辑面板.

Save TextMeshPro Font Asset :将弹出一个文件请求程序,允许您为新创建的资产选择文件位置和名称。默认情况下,字体名称将与字体名称相同。当使用带符号的距离字段呈现模式时,此名称将为添加了SDF的字体名称。我们建议您将字体资产保存在assets /Resources/Fonts/…或者创建这样的文件夹结构(如果不存在的话)。由于文本对象通常是通过脚本创建的,这导致任何场景对象都不会引用字体资产,这就保证了您的字体资产将包括在构建中并可用.

六、Font Asset

Face Info 包含特定于使用字体资产创建器呈现的字体的信息。这包括下列资料:

Font Source - 字体的名称。
Font Size - 字体在字体图集中呈现的点的大小。
Line Height - This is the spacing between each lines of text.
Baseline - 文本每行之间的间距。
Ascender - 字体中任何字符的最高点。
Descender - 字体中任何字符的最低点。
Underline - 下划线的位置。
Width & Height - 字体图集的宽度和高度

Font Sub-Assets:
Font Atlas - 字体所有字符的纹理。这种纹理是特定于这种字体的。
Font Material - 此字体的默认材质,其中包含对字体图集纹理的引用。
Face Style :
Normal & Bold weight - 字体的正常粗体权重。
Italic Style - 定义斜体的斜度。

Glyph Info 包含字体中每个字符的特定信息。


ASC II & Char - TASC II码和字符
X & Y - 字符在字体图集中的X和Y位置。
W & H - 字体图集中字符的宽度和高度。
Offsets - X偏移量是相对于(0,0)绘制字符的位置。Y偏移量表示字符的顶部相对于基线或(0,0)的位置。

Kerning Table Info 包含字体的字距信息。Kerning数据可以在创建字体时导入,也可以使用此面板手动添加。


Left Char - 字符对的左边部分
Right Char - 字符对的右边部分
Offset - 左右字符之间的偏移量
————————————————
版权声明:本文为CSDN博主「大眼睛姑娘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/elineSea/article/details/88799896

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity学习笔记——TextMeshPro使用详解 的相关文章

  • java/Springboot项目把Base64数据转为文件

    前言 以下记录如何将base64的数据转为文件保存在本地 依赖 pom xml需要导入以下依赖
  • worker 多线程

    Web Worker 的作用 就是为 JavaScript 创造多线程环境 允许主线程创建 Worker 线程 将一些任务分配给后者运行 在主线程运行的同时 Worker 线程在后台运行 两者互不干扰 等到 Worker 线程完成计算任务
  • mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)

    目录结构 com geyao mybatis mapper BlogMapper类 package com geyao mybatis mapper import java util List import java util Map im
  • TVM User Tutorial -- Blitz Course to TensorIR

    Author Siyuan Feng TensorIR 是一种特定领域语言 用于深度学习项目 有两个广泛的用途 在各种硬件后端上实现转换和优化程序 自动张力化程序优化的抽象 import tvm from tvm ir module imp
  • 一个可执行程序的组成

    一个可执行程序由四个区域组成 代码段 静态数据区 堆和栈 代码段包含程序运行时多执行的部分变量 静态数据区包含在程序生命周期内一直持久的数据 比如全局变量和静态局部变量 堆包含程序运行时动态分配的存储空间 比如用malloc分配的内存 栈包
  • mybatis使用时出现:对实体 “useSSL“ 的引用必须以 ‘;‘ 分隔符结尾问题的解决方法

    文章目录 问题描述 解决方法 问题描述 最近在学习mybatis 访问数据库时idea报错 解决方法 后来查了一下才发现 原来在 xml文件中写 符号时会引起冲突 需要把 改为 amp 才行 下面这个代码报错
  • 手把手带你打造自己的UI样式库(第三章)之常用样式组件的设计与开发

    常用样式组件的设计与开发 Search搜索框样式的设计与开发 搜索组件的需求 搜索框的功能比较简单 最基本的就是输入和提交两个逻辑 但是我们这个搜索框要额外的加一些细节 输入框分为输入状态和非输入状态 两种状态下输入框表现要有所不同 我们对
  • 虚拟机内部错误如何解决·?

    a 因为上一次开机是可以使用的 故初步推测是vm服务关闭所致 按住win R输入cmd打开cmd命令行 a 输入services msc进入服务界面 找到vm开头的服务 启动
  • 将本地的公钥复制到服务器的authorized_keys文件

    ssh git ip cat gt gt ssh authorized keys lt ssh id rsa pub
  • 1.4 ROS集成开发环境搭建

    ROS入门学习 1 4 ROS集成开发环境搭建 ROS入门教程 理论与实践 视频教程镇楼 和大多数开发环境一样 理论上 在 ROS 中 只需要记事本就可以编写基本的 ROS 程序 但是工欲善其事必先利其器 为了提高开发效率 可以先安装集成开
  • Android中OkHttp的使用(详解)

    1 先在项目中添加OkHttp库的依赖 dependencies compile com squareup okhttp3 okhttp 3 4 1 2 初始化 OkHttp框架的核心类是OkHttpClient 此类可直接实例化 由于Ok
  • 基于python,虹软sdk3.0实现的实时人脸识别

    前言 虹软sdk3 0是目前用过的最方便 效果最好的且免费的离线人脸识别SDK 提供的编程语音没有python 有大佬用c 代码接口转成python调用的 我在此基础上完善了一些功能 能够实现高精度多人脸实时人脸识别 并提供了年龄 性别识别
  • 用ChatGPT一分钟自动产出一份高质量PPT

    如何用ChatGPT一分钟自动产出一份高质量PPT 节约时间摸鱼呢 废话少说 直接上案例 一 用ChatGPT做一下提问 这里我用的小程序万事知天下 根据自己PPT的需求 制作chatgpt的prompt就行了 请帮我创建一个以 大学生如何
  • csv修改单元格格式后无法保存_Excel教程——excel如何使用条件格式?

    Microsoft excel条件格式可是你分析数据的好帮手 但该如何査看和分析这些数据呢 macw小编带来了excel如何使用条件格式的教程 希望对你有帮助 这款excel Mac版有一项常常被忽视 却非常实用的工具 条件格式 它能自动根
  • XMind思维导图介绍与下载安装使用教程

    文章目录 介绍 下载 安装 千人全栈VIP答疑群推荐 介绍 XMind 是一款非常实用的商业思维导图软件 应用Eclipse RCP 软件架构 打造易用 高效的可视化思维软件 强调软件的可扩展 跨平台 稳定性和性能 致力于帮助用户提高生产率
  • imos v5 web api说明文档_B站视频api整理

    此文档为非官方接口文档 无法保证接口有效性 以下接口为本项目目前使用的接口 也可以直接看src api 文件目录下的接口 仿B站视频网站项目源码 进入项目源码仓库 首页模块 推荐视频 https www bilibili com index
  • JDBC 和数据库连接

    JDBC 和数据库连接 基本介绍 JDBC为访问不同的数据库提供了统一的接口 为使用者屏蔽了细节问题 Java程序员使用JDBC 可以连接任何提供了JDBC驱动程序的数据库系统 从而完成对数据库的各种操作 JDBC的基本原理图 重要 JDB
  • core audio采集音频

    涉及的接口有 IMMDeviceEnumerator IMMDevice IAudioClient IAudioCaptureClient 主要过程 创建多媒体设备枚举器 IMMDeviceEnumerator 通过多媒体设备枚举器获取声卡
  • 如何设计一个电商平台积分兑换系统?

    目录 1 拉开差距的一类面试题 2 业务需求描述 3 对业务流程的思考 4 物流配送进度查询 考虑到了吗 5 事务的保证 6 消息中间件的引入 7 重试机制的引入 8 引入幂等性机制 9 对这类面试题的总结 1 拉开差距的一类面试题 现在面
  • idea安装findBugs 报idea运行项目报错Cannot run program

    装了findbugs之后报错 Malformed argument has embedded quote Djava endorsed dirs 打开帮助 编辑自定义VM选项 在最后一列添加下列代码 Djdk lang Process al

随机推荐

  • long(Long)与int(Integer)之间的转换

    1 将long型转化为int型 这里的long型是基础类型 long a 10 int b int a 2 将Long型转换为int 型的 这里的Long型是包装类型 Long a 10 int b a intValue 3 将Long型转
  • 面试题:HashMap高频面试题

    面试题 HashMap 1 底层数据结构 1 7和1 8有什么区别 1 7是数组 链表 1 8是数组 链表 红黑树 链表元素多时转换成红黑树 元素少时转换成链表 2 为何要用红黑树 为何一上来不树化 树化阈值为何是8 何时会树化 何时会退化
  • DB2客户端连接不上db2默认端口50000

    DB2客户端连接不上db2默认端口50000 1 添加组和用户 root localhost expc groupadd g 2000 upp root localhost expc useradd m g upp d home upp u
  • Java中map的分类和常见的情况

    Java为数据结构中定义了一个接口Java util Map 它有四个实现类 分别是HashMap Hash table LinkedHashMap 和 TreeMap Map主要用于存储键值对 根据键得到值 因此不允许键重复 重复了覆盖了
  • RabbitMQ(一)——入门

    前言 原来公司项目的消息中间件一直在用RabbitMQ 今天抽出时间简单总结梳理一下关于RabbitMQ的相关知识点 我们知道消息队列在分布式系统中应用的的地方有很多 它也有很多种类型 除了今天重点介绍的RabbitMQ 还有像Active
  • ADC的接地

    by Walt KesterQ I ve read your data sheets and application notes and also attendedyour seminars but I m still confused a
  • SpringBoot自动装配出现NULL的情况

    环境 idea 2021 6 mysql 8 0 问题描述 今天遇到通过 Autowired注解自动注入后 发现字段为空的问题 问题产生的原因是将被注入的对象交给了IOC容器管理但是却通过new对象的方式使用该对象 导致该对象下的内容都无法
  • C语言if语句实现分支结构应用练习题

    此练习为本人自己练习完成的答案 答案方法不止一种 仅供参考 练习题列表 1 1 计算分段函数 1 10 分 1 2 分段函数 10 分 1 3 打折促销 10 分 1 4 12 24小时制 10 分 1 5 分数等级转换 10 分 1 1
  • HashMap源码

    数组 数组存储区间是连续的 占用内存严重 故空间复杂度很大 但数组的二分查找时间复杂度很小 为 o 1 数组的特点 查找速度快 插入和删除效率低 链表 链表存储区间离散 占用内存比较宽松 故空间复杂度很小 但时间复杂度很大 为 o n 链表
  • MTCNN+CRNN解决车牌识别问题-2

    这次到CRNN部分了 CRNN网络很简单 就是CNN RNN 因为RNN适用于时间序列类型的数据 车牌呢 其实也是有规律的 比如第一位是汉字 后面是字母 汉字 前一部分通过MTCNN将车牌区域已经定位了 那这部分就需要拿CRNN来对其进行训
  • Unable to cast object of type in System.DirectoryServices.AccountManagement.GroupPrincipal

    在使用UserPrincipal Current ToString 获取域登录用户信息时 本地调试没有问题 上传到服务器报错 Unable to cast object of type System DirectoryServices Ac
  • CSwin-PNet: CNN-Swin-Vit 组合金字塔网络用于超声图像中乳腺病变分割

    ATTransUNet 期刊分析 摘要 贡献 方法 整体框架 1 Residual Swin Transformer block 2 Interactive channel attention module 3 Supplementary
  • java数据类型

    整数类型 byte short int long 浮点数类型 float double 字符类型 String 布尔类型 boolean 1 整数类型 byte 128 127 short 32768 32767 int 214748364
  • CTFHub-时间盲注-wp #(自制脚本做法)

    时间盲注脚本 coding utf 8 Time 2021 5 16 19 29 Author z1moq File ctfhub时间盲注 py Software PyCharm import requests import string
  • MATLAB实现控制系统模型(传递函数)的建立与转化,传递函数模型与零极点增益模型的转化,连续系统与离散系统的转化,对比不同采样周期对系统性能的影响

    最近使用MATLAB做了很多控制工程方面的仿真 测试不同系统的响应和特性 不得不说使用MATLAB做控制仿真还是十分简洁方便的 尤其是其中的simulink模块可以提供更加直观的模型 方便分析与测试 今天就分享在matlab中构造传递函数模
  • 【微信小程序】微信支付接入全流程

    一 前置条件 接入支付首先得需要有企业资质 并开通企业对公户 注册微信支付并进行对公户打款认证 二 开始接入 1 下载微信支付的AP证书 2 服务端接入微信支付 2 1 引入相关maven配置
  • Java基础之集合

    Java基础 集合 1 Collection接口 Collection 是 List 和 Set 的父接口 常用方法如下 package com java day16 import java util ArrayList import ja
  • 简单实现继承一个抽象类的同时实现接口

    定义一个抽象类animal author ljf 定义一个抽象类animal 关键字abstract public abstract class Animal 将动物共有属性进行封装 名字 年龄 颜色 性别 说话 private Strin
  • np.dot(a, b)用法

    In short np dot a b 就是一个乘法函数 数和数相乘 若a和b都是数 np dot 1 2 2 一维数组的内积 np dot 1 2 3 4 5 6 1 2 3 4 5 6 1x4 2x5 3x6 32 矩阵的乘积 x np
  • Unity学习笔记——TextMeshPro使用详解

    https blog csdn net elineSea article details 88799896 TextMesh Pro是Unity默认文本组件的替代品 TextMesh Pro和默认组件一样拥有高性能 它使用了完全不同的Sig