Unity -UGUI中Text文本框的自动调整,字体大小的自适应调节

本文介绍三种Unity中UGUI文本框自适应方法:1. 固定大小下字体随文字数量自动调整大小;2. 文本框随字数增加自动拉长,字体大小不变,适用于无背景情况;3. 文本框自动调整大小,适用于有背景情况,使用ContentSizeFitter和VerticalLayoutGroup组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.UGUI text框大小固定,里面字体大小随着文字增多逐渐变小的设置(很简单)

1.找到Text组件的Parageraph(段落)组件,在Horizontal Overflow和Vertical Overflow调整你想变化的轴

2.Best Fit的选项卡打开,默认是关闭的,设置最大和最小变化的字体大小。

以上即可完成固定输入框大小,字体变多,字体随着不断变小的情况了。

二.UGUI text框大小不固定,text框随着字数增加逐渐拉长但是字体的大小不变,无背景(需要用到Content Size Fitter组件)

1.这种方式需要用到Content Size Fitter组件,在Text上挂载Content Size Fitter组件

2.调节水平和竖直方向上的缩放方式。这个地方要注意的是Transform组件的Pivot,默认是(0.5,0.5),Content Size Fitter组件用来根据这个控制缩放,当为(1,0)只有Horizontal Fit组件在匹配,当为(0,1)时是VerticalFit匹配。图中的设置是竖直无限拉长的处理;

可以通过调节Pivot以及Content Size Fitter两个组件进行尝试调节你想要的效果

三.UGUI text框大小不固定,text框随着字数增加逐渐拉长字体的大小不变,有背景(需要用到Content Size Fitter和Vertical Layout Group组件)

1.在Text文本框的父物体上增加Content Size Fitter和Vertical Layout Group组件

2.在Text上同样增加如二中所示的Content Size Fitter组件

3.调节Vertical Layout Group组件,完成自动大小变化的调整。

最后:这几种调节方式,特别是在第三种情况下,当字体可能会无限增长,想要一定长度的换行就需要特殊的换行处理,可以通过对文本的截取,在一定长度内增加'\n'来换行。下面附上简单写的代码,可以用看来参考


    /// <summary>
    /// 将str更换为带换行"/n"的输入框
    /// </summary>
    /// <param name="str">需要转换的str</param>
    /// <returns>带换行的Str</returns>
    public static string GetNstring(string str)
    {
        string result = "";
        int point = 0;
        for (int i = 0; i < str.Length; i++)
        {
            if (point == 40)
            {              
                result += '\n';
                point = 0;
            }
            result += str[i];
            point++;
        }     
        return result;
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值