Unity3D :文本入门

Unity3D :文本入门
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

文本入门

UI Toolkit使用TextCore来渲染文本,这是一种基于TextMesh Pro的技术。TextCore 允许高级样式设置功能,并且可以以各种点大小和分辨率清晰地呈现文本。它利用了有符号距离字段 (SDF) 字体渲染,可以生成即使在转换和放大时看起来清晰的字体资源。

此示例演示如何在 中设置文本样式用户界面
构建、创建和应用静态和动态字体资源,使用富文本标签和自定义样式表设置文本样式,并创建面板文本设置资源以管理面板的文本设置。

注意:出于演示目的,本指南使用运行时 UI。创建字体资源和样式表的说明也适用于编辑器 UI。但是,您无法在当前版本中更改编辑器 UI 的默认面板文本设置。

先决条件

本指南适用于熟悉 Unity 编辑器、UI 工具包和 C# 脚本的开发人员。在开始之前,请熟悉以下内容:

  • 用户界面生成器
  • 用户体验
  • 运行时用户界面

创建面板文本设置资源

从运行时 UI 开始,创建用于管理面板文本设置的面板文本设置资产。您还可以创建文件夹和子文件夹来存储字体资源和自定义样式表。Resources

  1. 按照运行时 UI 入门中的步骤创建简单的运行时 UI。
  2. 在文件夹中,创建一个文件夹。AssetsResources
  3. 右键单击该文件夹,然后选择“创建> UI 工具包”>“文本设置”以创建 .的“检查器”窗口显示字体资源、文本样式表资源、精灵资源和颜色渐变预设的默认路径名。Assets\UI ToolkitUITK Text Settings.assetUITK Text Settings.asset
  4. 在该文件夹中,创建两个名为 和 的文件夹。ResourcesFonts & MaterialsText Style Sheets

使用 UI 生成器设置文本样式

使用 UI 生成器将切换文本的样式设置为粗体和斜体,字体大小为 .有关详细信息,请参阅使用 USS 设置文本样式。12px

  1. 双击以在 UI 生成器中将其打开。SimpleRuntimeUi.uxml
  2. 检查员
    窗口,选择文本
  3. 在“字体样式”字段中,选择“BI”。
  4. 大小 字段中,输入 12

创建静态字体资源

创建静态字体资产并将其应用于 Button 控件。对于静态字体资产,无需在生成中包含源字体文件。但是,您必须为按钮显示文本中的所有字符生成图集。显示文本是,您将在文本中添加 a,因此您可以生成 的图集。This is a Button*TBhinostua*

  1. 从谷歌字体下载Lato字体包。
  2. 解压缩字体包文件并放置在项目的文件夹中。Lato-Regula.ttfAssets

在字体文件的“检查器”窗口中,确认以下内容:

  • 已启用“包括字体数据”。
  • 字符设置为动态
  1. 在“项目”窗口中,右键单击并选择“创建>文本>字体资源”。这将创建一个名为 的动态字体资产。Lato-Regula.ttfLato-Regula SDF.asset
  2. 在 的“检查器”窗口中,将“地图集填充模式”设置为“静态”。Lato-Regula SDF.asset
  3. 单击更新图集纹理
  4. 在“字体资源创建器”窗口中,从“字符”列表中选择“自定义字符”。
  5. 在“自定义字符列表”框中,输入 。TBhinostua*
  6. 单击生成字体图集
  7. 保存更改。
  8. 放在文件夹中。Lato-Regula SDF.assetAssets\Resources\Fonts & Materials
  9. 双击以在 UI 生成器中将其打开。SimpleRuntimeUi.uxml
  10. 在“按钮”控件的“检查器”窗口中,选择“文本>字体资源”>“Lato-Regula SDF”。

创建动态字体资源

创建动态字体资源并将其应用于文本字段控件
.对于动态字体资源,必须在生成中包含源字体文件。将源字体文件直接导入为字体设置的路径。

  1. 从 Google Fonts 下载 Roboto 字体包。
  2. 解压缩字体包文件并放置在项目的文件夹中。Roboto-Regular.ttfAssets\Resources\Fonts & Materials

在字体文件的“检查器”窗口中,确认以下内容:

  • 已启用“包括字体数据”
  • 字符设置为动态
  1. 右键单击并选择创建>文本>字体资源。这将创建一个名为 的动态字体资产。Roboto-Regular.ttfRoboto-Regular SDF.asset
  2. 双击以在 UI 生成器中将其打开。SimpleRuntimeUi.uxml
  3. 在“文本字段”控件的“检查器”窗口中,选择“文本>字体资源”>“机器人常规 SDF”。

使用富文本标签设置样式

使用 RTF 标记在 Label 控件中设置文本样式。

注意:在当前版本中,文本字段不支持富文本标签。

  1. 双击以在 UI 生成器中将其打开。SimpleRuntimeUi.uxml
  2. 在“标签”控件的“检查器”窗口中,将“文本”更改为 。这使得单词大,红色,粗体,并且两侧都有一个星号。This is a <font-weight=700><size=2em><color=#FF0000>*Label*</color></size></font-weight>Label
  3. 确保已选择“启用富文本”。

标签文本在视窗
窗:

标签文本预览将单词“标签”显示为大、红色,两侧各有一个星号。
标签文本预览将单词“标签”显示为大红色,两侧各有一个星号。

使用样式表设置样式

若要将相同的样式应用于 到 ,请创建自定义样式表,并将该样式应用于这两个单词。LabelButton

  1. 右键单击该文件夹,然后选择“创建>文本>文本样式表”。这会在面板文本设置资源中设置的路径中创建一个。Assets\Resources\Text Style SheetsText StyleSheet.asset

在 的“检查器”窗口中,执行以下操作:Text StyleSheet.asset

  • “名称”中,输入 。ExampleStyle
  • “打开标记”中,输入 。<font-weight=700><size=2em><color=#FF0000>*
  • “结束标记”中,输入 。*</color></size></font-weight>
  1. 在 的“检查器”窗口中,从“默认样式表”列表中选择“文本样式表”。UITK Text Settings.asset
  2. 双击以在 UI 生成器中将其打开。SimpleRuntimeUi.uxml
  3. 在“标签”控件的“检查器”窗口中,将“文本”更改为 。<s>This is a <style="ExampleStyle">Label</style>
  4. 确保已选择“启用富文本”。
  5. 在按钮控件的“检查器”窗口中,将“文本”更改为 。<s>This is a <style="ExampleStyle">Button</style>
  6. 确保已选择“启用富文本”。
  7. 进入播放模式并检查运行时 UI 中的文本。
  8. 在文本字段中,输入一些随机字符。对于动态字体资源,当您在文本字段中输入文本时,字体图集会动态生成。
  9. 在项目的文件夹中,选择 。Assets\Resources\Fonts & MaterialsRoboto-Regular SDF.asset
  10. 在 的“检查器”窗口中,选择“更新图集纹理”以打开“字体资源创建器”窗口。如果图集窗口处于隐藏状态,请将其扩展。您应该会看到您在图集窗口中输入的字符。Roboto-Regular SDF.asset
新输入的字符将显示在字体图集中窗口中。
新输入的字符将显示在字体图集中窗口中。

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :使用 UI 工具包的输入和事件系统的常见问题解答 (mvrlink.com)

下一篇:Unity3D :使用 USS 设置文本样式 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号