Unity实现字符串竖行显示

时间:2024-03-19 13:57:08

最近遇到一个问题,策划需求,文字像古书那样,从右到左,竖行显示。

以前一直以为UGUI的Text可以满足这个需求,我以为可以设置某个属性,就将现在横排显示的文本变成竖行,做个东西的时候没有找到原生的解决方案,然后在网上简单的扒了一圈,发现有两种解决方法。

第一种是,将设置到Text组件的文本行转列其余的用空格显示。

第二种是重写Text组将的一些函数,具体怎么弄的没看明白。

然后这两种方法我都试了一下,都有Bug,然后我就用一种简单的方法替代了,能解决当前问题。

我是用GridLayoutGroup组件实现这个功能的:

1、在GameObject上添加Text组件做成一个预制Item;

2、将需要竖行显示的文本字符串装换成Char数组;

3、循环数组,实例化Item,将Char数组里面的值设置到Item的Text组件里面, 一个Item设置一个值;(如果你文本里面有换行,你需要计算空格添加到Array或List里面)

4、设置GridLayoutGroup属性,利用GridLayoutGroup实现竖行显示文本的功能。

Unity实现字符串竖行显示

这里是我GridLayoutGroup设置的属性。效果图如下:

Unity实现字符串竖行显示

以上就是我通过GridLayoutGroup组件实现字符串竖行显示的方法,如果你文本不多、固定不变的,可以使用这种方法,如果你文本比较多,转出来的字符数组比较大,不建议这样使用。最好的办法应该还是重写Text吧,但是我看了Text源码,不知道从哪里着手。

如果你有更好的方法,期待你的分享!