返回首页

UniText 2.0:Unity 中的字体渲染

UniText 2.0 更新了 Unity 的文本引擎,重点关注 HarfBuzz 排版、SDF/MSDF 渲染和可变字体。BiDi/RTL 支持、动态图集和 World Space 文本简化了复杂的 UI 开发。商业版,附开源 1.0。

Unity 中的 UniText 2.0:从排版到 World Space
Advertisement 728x90

UniText 2.0:Unity 渲染和字体处理的关键改进

UniText 2.0 是 Unity 文本引擎的全面重构。更新日志涵盖了几乎所有组件,保留了 1.0 版的优点,同时新增了许多功能。重点转向简化样式、字体以及现代 Unicode 标准的处理。开源的 1.0 版仍然可用,而 2.0 版通过官网或 Asset Store 商业提供。

2.0 版针对中高级开发者,提供优化构建和渲染的工具,同时不牺牲性能。Burst 支持在原生平台上带来性能提升,尽管受限于 Unity 6.4 在 WebGL 上的当前能力。

渲染和整形技术

引擎使用 HarfBuzz 进行文本整形——复杂脚本的标准工具。渲染通过 SDF 和 MSDF 实现,确保在各种尺度下清晰无锯齿。Burst 集成将关键路径编译为原生代码,最小化开销。

Google AdInline article slot

完全支持 RTL 语言(阿拉伯语、希伯来语)和 BiDi 文本,符合 Unicode 规范,测试通过率 100%。这消除了混合 LTR/RTL 内容时自定义解决方案的需求。

单一动态字体图集取代了 TMP 的多个图集。自动压缩将构建中的字体大小减少 2–3 倍。工具允许子集化字形,排除未使用的字符。

高级字体和解析支持

新增了对 Font Family 和 Variable Fonts 的支持。Variable Fonts 允许动态调整粗细、宽度等参数,而无需多个文件,解决了设计师提供的资源问题。

Google AdInline article slot

解析支持 Markdown、BBCode 或自定义解析器。Emoji 包括 ZWJ 序列、肤色修饰符以及原生系统 Emoji——无需嵌入到构建中。

视觉修饰符系统避免了材质依赖,实现不同效果的批处理。通过自定义模块、预设和片段样式标签进行扩展。Inspector 简化了快速设置。

列表中的关键特性:

Google AdInline article slot
  • HarfBuzz + SDF/MSDF + Burst 用于渲染。
  • 完全符合 Unicode 的 RTL/BiDi。
  • 2-3 倍压缩的动态图集。
  • Font Family、Variable Fonts、Emoji(ZWJ、肤色、系统)。
  • 无材质修饰符、自定义预设和标签。
  • Markdown/BBCode 解析。

3D 空间中的文本和性能

新特性:Canvas 外部的 World Space 文本,支持自动批处理。非常适合 AR/VR 和 3D UI,此处 Canvas 限制了灵活性。

基准测试确认了性能提升,尤其在大文本量场景中。在桌面平台和 WebGL(Unity 6.3+)上,构建运行流畅,尽管 WebGL 无法充分利用 Burst。

测试发现了少量小 bug,但关键问题已迅速修复。生产使用需要在真实循环中进行额外验证。

关键点

  • 切换到单一图集和压缩,大幅减少构建大小。
  • 无需重新发明轮子即可完全支持 BiDi/RTL,简化本地化。
  • 修饰符和标签实现精细文本样式,同时不丢失批处理。
  • Variable Fonts 和系统 Emoji 最小化资源。
  • World Space 文本扩展了超出 UI Canvas 的应用。

该引擎定位为高文本需求项目的 TMP 替代品。前景取决于 UI Toolkit 的发展,但当前技术栈在生产环境中表现稳固。

— Editorial Team

Advertisement 728x90

继续阅读