在表达式输入框中加入富文本样式代码支持(或转义字符支持)
-
正在开发一个游戏内聊天和指令的系统,然后我想实现同一个文本中存在多种不同颜色的文字,那么显然是需要用到富文本功能的;
富文本实际上是用CSS样式代码实现的文字样式更改,其格式一般为<span style="xxxxx:xxxxx;">文本内容</span>等。
这个代码直接写在场景或者对话框中还比较好用,但却不能写在表达式输入框中;原因是这个代码中存在双引号,会被引擎识别为字符串结束标志。
如果使用转义字符“\”,那么确实可以输入进去,但并不能被正确读取和转义:
若直接设置对象的字体样式,则所有文本都会被更改;文本.text表达式只能返回字符串,而不带有样式信息。
此外,replace()等字符串处理表达式也都不支持使用反斜杠作为查找的字符串目标,会直接提示未识别。
目前我的解决方法比较暴力,直接在场景区域外面建立一个特定的文本,用于存放样式信息;然后通过replace()替换其中的text字段,这里的替换目标已经变成text了所以可以成功。
当然我也能想到更多的方法来解决这个问题,例如通过数组或多个文本实例内容的组合等;但这样实现终究不是长远之计,即使这个功能的需求非常少,我也觉得有加入的必要(而且“<”和“>”符号似乎也不能完全正常运作,经常会发现文本中丢失后续内容的情况
-
这个我以前做过,建一个颜色字典, 颜色名:颜色编码
然后创建一个动作组,传入需要上色的文本和颜色名
在动作组里对格式进行拼接后设置返回值即可
-
@其余 这个我也想过,但是还是有点麻烦,而且有时候想要多个样式的话拼接就更复杂了目前来说我的需求还不是很多,暂时先用着,其实最麻烦的是这俩符号(<>)不能正常使用,当时我以为是我写错了排查了半天,最后只能放弃使用