统一文本具有这样的特性:某些HTML样式的标记可以用来格式化文本,比如<b></b>用于粗体,<color=#ff0000></color>用于有色文本。有时,我看到一些Unity显示用户提供的文本(比如昵称或聊天消息),并且它们不会被转义,这意味着如果用户在这些标记中键入格式标签,就会应用格式标签。问那些开发人员(我不开发自己),什么是最好的/最简单的方法,以逃避这些标签?是否存在内置函数,或者应该编写/导入新函数?
编辑:是的,我确实查过"C# HTML转义“,并找到了一个将<转义到<中的函数,但是统一并没有将<呈现为<,而我在团结场景中得到了<color=#ff0000>的无稽之谈。是的,我确实意识到有一个勾选框禁用富文本,但也有一个用例,例如,您实际上希望在富文本上下文中使用用户提供的文本。
发布于 2022-09-21 14:49:36
Text和TMP_Text (TextMeshPro和TextMeshProUGui)都在检查器中指定了字段Rich Text,或者通过代码将其命名为Text.supportRichtText和TMP_Text.richText。默认情况下,它们是启用的。
是的,我认识到有一个勾选框禁用富文本,但也有一个用例,例如,您实际上希望在富文本上下文中使用用户提供的文本。
很简单
在用例中,format
如前所述,您甚至可以在需要时通过代码将其切换到运行时。
如果您想进一步阻止用户将某些符号放入输入字段,请使用相应的输入类型和输入验证设置(参见InputField)。
https://stackoverflow.com/questions/73791039
复制相似问题