在 Unity 中转义 HTML 富文本语法的最简单方法是什么?



Unity文本具有特定HTML样式标记可用于格式化文本的功能,如<b></b>用于粗体,<color=#ff0000></color>用于彩色文本。有时我会看到一些Unity游戏显示用户提供的文本(比如昵称或聊天消息(,但它们并没有转义,这意味着如果用户键入这些标签,就会应用格式标签。询问这些开发人员(我自己不开发(,逃离这些标签的最佳/最简单方法是什么?是否有内置函数,或者应该编写/导入一个新函数?

编辑:是的,我确实查过";C#HTML转义";并找到了一个将<转义为&lt;的函数,但Unity没有将&lt;渲染为<,我在Unity场景中得到了&lt;color=#ff0000&gt;的无意义。是的,我确实意识到有一个勾选框可以禁用富文本,但也有一个用例,例如,您实际上希望在富文本上下文中使用用户提供的文本。

TextTMP_Text(TextMeshProTextMeshProUGui(在Inspector中都有相应的字段Rich Text,或者通过代码它是Text.supportRichtTextTMP_Text.richText。默认情况下,它们处于启用状态。

是的,我确实意识到有一个勾选框可以禁用富文本,但也有一个用例,例如,您实际上希望在富文本上下文中使用用户提供的文本。

这么简单的

  • 希望允许富文本标记更改格式的用例中启用此选项
  • 如果不需要,请禁用此选项

如前所述,您甚至可以在需要时通过代码在运行时切换。


如果您想进一步防止用户将某些符号放入输入字段,请使用相应的输入类型和输入验证设置(例如,参见InputField(

最新更新