Version: 6000.3
语言: 中文
语言方向
UITK 文本设置资产

高级文本生成器

高级文本生成器是一个文本渲染模块,它采用 HarfbuzzICUFreeType 来提供全面的 Unicode 支持和文本整形功能。

使用高级文本生成器,您可以使用多种语言和脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
,例如从右到左 (RTL) 语言,如阿拉伯语和希伯来语。

启用高级文本生成器

  1. 从菜单中,选择 编辑>项目设置(Project Settings) > UI 工具包
  2. 选择“启用高级文本生成器”复选框。

使用高级文本生成器

要使用高级文本生成器,你必须使用支持要使用的语言的字体资源。例如,如果要使用阿拉伯语,则必须使用支持阿拉伯语的字体资产。高级文本生成器仅支持动态字体资源。在项目中使用高级文本生成器之前,必须将字体导入项目并从中创建动态字体资源

在 UI Builder 中

要在 UI Builder 中使用高级文本生成器,请执行以下作:

  1. 选择视觉元素实例化或派生自 C# 的可视化树的节点VisualElement类。您可以设置外观样式、定义行为并将其作为 UI 的一部分显示在屏幕上。更多信息
    请参阅术语表
    您要申请的。
  2. “检查器”面板中,选择“内联样式”>“文本”。
  3. 文本生成器类型下拉列表中,选择高级。

在USS

要在 USS 中使用高级文本生成器,请将-unity-text-generatoradvanced.例如:

.labelText {
    -unity-text-generator: advanced;
}

在 C# 脚本中

若要在 C# 脚本中使用高级文本生成器,请将TextGeneratorTypeAdvanced.例如:

textElement.style.unityTextGenerator = new StyleEnum<TextGeneratorType>(TextGeneratorType.Advanced);

光标移动

本节介绍在处理双向 (BIDI) 文本时光标移动在输入字段中的行为方式。

逻辑光标移动

Unity 目前遵循逻辑光标移动方法。这意味着光标根据文本段的方向在 BIDI 文本中移动。例如,在包含阿拉伯语和英语文本的句子中使用左箭头键,它会从右到左移动阿拉伯语,然后跳转到英语段中最左边的字符,并继续从左到右,直到到达段的末尾。

逻辑光标移动示例
逻辑光标移动示例

可视光标移动

某些应用程序遵循Visual Cursor Movement方法。这意味着无论文本的方向如何,光标都会移动到下一个视觉字符,这有时会让用户感觉更直观。我们计划在未来的版本中将光标移动模式作为选项。

自动调整文本元素大小

您可以使用“最佳拟合”为文本启用自动调整大小。“最佳拟合”功能允许您设置文本元素的最小和最大字体大小。文本元素根据内容和范围内的可用空间动态调整其字体大小。

Best Fit 还支持以下功能:

  • 自动换行:自动换行文本以适合指定的宽度。
  • 省略号截断:如果文本超过可用空间,则自动截断带有省略号 (...) 的文本。
  • 多种对齐方式:支持左、中、右对齐。
  • 换行符:必要时自动插入换行符。

可以在 UI 生成器、USS 或 C# 脚本中启用自动调整大小。

在 UI Builder 中

  1. 选择要修改的文本元素。
  2. “检查器”面板中,选择“文本”>“自动调整大小”
  3. 输入最小和最大字体大小。文本元素会自动在此范围内调整其字体大小以适应文本内容。

在USS

在 USS 中,将-unity-text-auto-size属性设置为best fit具有最小和最大字体大小。例如:

.labelText {
    -unity-text-generator: advanced; 
    -unity-text-auto-size: best-fit 5px 100px;
}

在 C# 脚本中

若要在 C# 脚本中启用自动调整大小,请使用TextAutoSizeMode财产。例如:

textElement.style.unityTextAutoSize = new StyleTextAutoSize(new TextAutoSize(TextAutoSizeMode.BestFit, minSize: 10, maxSize: 100));

局限性

高级文本生成器具有以下限制:

  • 仅支持动态字体资源。
  • 字形指标的自定义不可用。建议的最佳实践是使用字体编辑工具根据需要调整指标或修剪字体。

使用高级文本生成器时,您的项目会包含icudt73l具有大量内存占用的文件4.8MB.这将在未来的版本中得到改进。

其他资源

语言方向
UITK 文本设置资产