Unity(2022.3.41LTS) - UI详细介绍-TMP

devtools/2024/11/18 2:30:06/

目录

零. 简介

一、主要特点

二、使用方法

三.组件详情

四.制作TMP字体

五、优化和注意事项



零. 简介

在 Unity 中,TextMesh Pro(TMP)是一种高级的文本渲染解决方案,相比传统的 Unity 文本组件,它提供了更多的功能和更好的视觉效果。

一、主要特点

  1. 高质量渲染:TMP 使用了先进的文本渲染技术,可以生成清晰、锐利的文本,即使在高分辨率下也能保持良好的可读性。它支持抗锯齿、次像素渲染和轮廓效果等,使文本看起来更加美观。
  2. 丰富的字体样式:可以轻松设置文本的字体、大小、颜色、加粗、倾斜、下划线等样式。还可以使用自定义字体和材质,以实现独特的文本外观。
  3. 文本特效:TMP 提供了多种文本特效,如发光、阴影、浮雕等,可以增强文本的视觉吸引力。这些特效可以通过简单的设置进行调整,以满足不同的设计需求。
  4. 动态文本:可以通过代码动态地更新文本内容,实现实时显示游戏中的信息,如得分、时间、角色状态等。TMP 还支持动画效果,可以使文本以动态的方式出现或消失。
  5. 多语言支持:TMP 可以轻松处理多种语言的文本,包括复杂的字符集和排版要求。它支持 Unicode 编码,可以显示各种语言的文字,并且可以根据不同的语言进行字体和布局的调整。
  6. 性能优化:TMP 经过优化,以提高文本渲染的性能。它使用了高效的渲染技术和缓存机制,可以减少绘制调用次数,提高游戏的帧率。

二、使用方法

  1. 安装和导入:在 Unity 中,可以通过 Package Manager 安装 TextMesh Pro 插件。安装完成后,在项目中会出现一个 “TextMesh Pro” 文件夹,其中包含了 TMP 的相关资源和脚本。
  2. 创建文本对象:可以通过 GameObject -> UI -> Text - TextMeshPro 菜单创建一个新的 TextMesh Pro 文本对象。也可以将现有的 Unity 文本组件转换为 TextMesh Pro 文本对象,只需在 Inspector 窗口中点击 “Convert To TextMeshPro” 按钮即可。
  3. 设置文本属性:在 Inspector 窗口中,可以设置文本的各种属性,如字体、大小、颜色、特效等。可以通过拖放字体文件和材质资源来应用自定义的字体和材质。
  4. 代码控制文本:可以通过脚本动态地更新文本内容和属性。例如,可以使用以下代码在运行时更改文本的内容:
using TMPro;public class TextController : MonoBehaviour
{public TextMeshProUGUI myText;void Start(){myText.text = "Hello, TextMesh Pro!";}
}

三.组件详情

四.制作TMP字体

由于不支持中文,所以需要做一个中文的字体资源

首先导入字体

然后再字体上右键

这是修改前

然后替换字体资源

之后的效果图

还一个设置可以设置默认的字体,省的每次创建的时候都要再引一下了

在 编辑 -> 项目设置 -> TextMesh pro 设置页面

这样新建的字体,默认字体就是我们新建的那个字体了.

五、优化和注意事项

  1. 性能考虑:虽然 TMP 经过了性能优化,但在处理大量文本或复杂特效时,仍然可能会对性能产生一定影响。可以通过合理使用特效、控制文本的更新频率和优化字体资源等方式来提高性能。
  2. 字体资源管理:如果使用了自定义字体,要注意字体文件的大小和加载时间。可以根据实际需求选择合适的字体格式和压缩方式,以减少内存占用和加载时间。
  3. 兼容性:在使用 TMP 时,要注意与其他插件和工具的兼容性。有些插件可能不支持 TMP 的特定功能或可能会与 TMP 产生冲突。在使用之前,最好进行充分的测试和调试。
  4. 版本更新:TMP 会不断更新和改进,要及时关注官方的更新信息,并根据需要进行升级。在升级时,要注意备份项目和测试新功能,以确保不会出现兼容性问题。

总之,TextMesh Pro 是 Unity 中一种强大的文本渲染解决方案,它提供了高质量的文本渲染、丰富的字体样式和特效、动态文本更新和多语言支持等功能。通过合理地使用 TMP,可以为游戏界面和文本显示增添更多的视觉吸引力和交互性。


http://www.ppmy.cn/devtools/104914.html

相关文章

数组扁平化方法

参考文章 法1:朴质的递归实现 遍历数组的每一项,如果每一项依然是数组,就继续调用递归方法;如果是基本数据类型,就添加到结果数组里面 const a [1, [2, [3, [4, 5]]]];const flatten (arr) > {let result [];f…

github私有仓库通过action部署hexo到公开仓库

github私有仓库通过action部署hexo到公开仓库 有一段时间一直将博客md文件直接放到公开仓库然后通过工作流action创建一个gh-page分支,来实现部署 但是这样做有一个问题,如果你的源文件,或者配置文件中有涉及变量,或者密钥key&a…

【Python报错已解决】“ModuleNotFoundError: No module named ‘mne‘”

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言:一、问题描述1.1 报错示例:当我们尝试导入MNE-Python库时,可能会看到以下错误…

国密起步3:GmSSL3使用SM3(哈希)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码在othertest目录。 目录 …

Vue.js 样式绑定

Vue.js 样式绑定 Vue.js 是一种流行的前端框架,它提供了一种简洁而强大的方式来绑定样式到元素上。样式绑定允许开发者根据组件的状态动态地改变元素的样式。在 Vue 中,样式绑定可以通过多种方式实现,包括类绑定、内联样式绑定和计算属性样式…

C# 编译程序引用C++DLL托管动态链接库实例

构建 C# 程序引用CDLL托管动态链接库 前言1、统一框架版本2、统一编译平台3、C 托管动态链接库的优点3.1、C 托管动态链接库引用方便简单3.2、C 托管动态链接库加快了程序构建和重复利用3.3、C 托管动态链接库源代码更加安全 4、构建与 C# 程序进行互操作的C.DLL动态链接库的三…

SAM 2: The next generation of Meta Segment Anything Model for videos and images

https://ai.meta.com/blog/segment-anything-2/ https://github.com/facebookresearch/segment-anything-2 https://zhuanlan.zhihu.com/p/712068482

比特币牛市将至背后

作者:Arthur Hayes 编译:Liam 「此处所表达的任何观点均为作者个人意见,不应作为投资决策依据,也不应被视为参与投资交易的推荐或建议。」 我打破常规,前往南半球滑雪两周,为北半球的暑假画上圆满的句号。我…