Unity利用正则取消富文本效果

Posted by JohnWayne on July 15, 2022

Unity的Text组件里有个RichText选项,如果填入<color=#fff000>你好</color>,并勾上富文本,会显示有颜色的你好,但如果不勾选富文本,则会出现<color=#fff000>你好</color>。如果在不同页面调用相同的文本,或者根据不同情况选择是否有颜色。则需要通过正则表达式。

代码

using System.Text.RegularExpressions;
...
...
string input = "<color=#fff000>你好</color>"
string pattern = "\\<color.*?>\</color>";
string replacement = "";
txt.text = Regex.Replace(input, pattern, replacement);

总结

如果封装一层Text组件,在不勾RichText的时候自动正则去掉颜色更好,但是这个需求毕竟小众,杀鸡焉用牛刀。

作者 [张巍]

2022 年 07月 15日