UGUI使用小技巧(六)Unity實現(xiàn)字符串豎行顯示

最近遇到一個問題,策劃需求,文字像古書那樣,從右到左,豎行顯示。

以前一直以為UGUI的Text可以滿足這個需求,我以為可以設置某個屬性,就將現(xiàn)在橫排顯示的文本變成豎行,做個東西的時候沒有找到原生的解決方案,然后在網(wǎng)上簡單的扒了一圈,發(fā)現(xiàn)有兩種解決方法。

第一種是,將設置到Text組件的文本行轉(zhuǎn)列其余的用空格顯示。

第二種是重寫Text組將的一些函數(shù),具體怎么弄的沒看明白。

然后這兩種方法我都試了一下,都有Bug,然后我就用一種簡單的方法替代了,能解決當前問題。

我是用GridLayoutGroup組件實現(xiàn)這個功能的:

1、在GameObject上添加Text組件做成一個預制Item;

2、將需要豎行顯示的文本字符串裝換成Char數(shù)組;

3、循環(huán)數(shù)組,實例化Item,將Char數(shù)組里面的值設置到Item的Text組件里面, 一個Item設置一個值;(如果你文本里面有換行,你需要計算空格添加到Array或List里面)

4、設置GridLayoutGroup屬性,利用GridLayoutGroup實現(xiàn)豎行顯示文本的功能。

image

這里是我GridLayoutGroup設置的屬性。效果圖如下:

image

以上就是我通過GridLayoutGroup組件實現(xiàn)字符串豎行顯示的方法,如果你文本不多、固定不變的,可以使用這種方法,如果你文本比較多,轉(zhuǎn)出來的字符數(shù)組比較大,不建議這樣使用。最好的辦法應該還是重寫Text吧,但是我看了Text源碼,不知道從哪里著手。

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

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容