Unity平台,文本换行保护(解决标点符号处于行首行末、数字因换行而分离的问题)

在 Unity 下,显示文本,若标点符号刚好处于换行处,将会变成这样:

标点不换行.png

或者括号刚好处于换行处,将会变成这样:

很不厚道的括号.png

又或者一串较长的数字刚好处于换行处,将会变成这样:

被迫分离的爱.png

... ...

但我不想这样,为啥?因为这样游戏无法过审!
后来逛了下论坛,也没找到合适的解决方案,就决定自己倒腾了。
 
下面是我的成果~

标点符号换行,且拉伸少字的行.gif

▲ 上图展示了标点符号换行效果。其实图内还有一个效果就是当“他”字也被挪到第二行时,第一行的字就变少了,所以就将第一行的字距变宽了,这样就达到了与 Office Word 差不多的效果(该效果默认是禁用的,可通过 TextFormat 的 CWP_StretchEnabled 来启用/禁用)

英文单词换行.gif

▲ 上图展示了英文单词换行效果。

长数字换行.gif

▲ 上图展示了长数字换行效果。

... ...

代码改造都有尽量绕开谷主的源码,功能也都做了开关(都在 TextFormat 里,以 CWP 开头的变量)。主要进行代码改造的地方是 TextField.cs 。
 
基于v4.3.0的源码改造的(谷主很久都没更新了呢)。
具体代码在附件,可以直接覆盖使用。

1 个评论

谢谢分享

要回复文章请先登录注册