UGUI中Text的自适应换行问题

38 篇文章 6 订阅
14 篇文章 0 订阅

方法一:

    Text里的内容已知并且固定,我们可以在Text文本框里编辑时,通过换行键就可以实现。

方法二:

    可以通过代码直接给Text组件的text赋值,效果如下:

代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Test : MonoBehaviour {

    public Text myTest;
	void Start () {
        myTest.text = "<color=red>11111111</color>\n<color=green>666666666</color>";
    }
}

效果:


方法三:

这时你会想,在代码里使用换行符(\n)可以换行,是不是在Text文本框里使用换行符也可以换行啊,事实上是不可以的。为什么会这样呢???原因是Unity会将\n变成\\n,我们只需要将\\n换成\n就可以了。效果如下:

①、仅在Text文本框里使用了换行符(\n)


②、在脚本里控制,将\n换成\\n


代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Test : MonoBehaviour {

    public Text myTest;
    public GameObject myText;
	void Start () {
        myTest = myText.GetComponent<Text>();
        myTest.text = myTest.text.Replace("\\n", "\n");
    }
}

方法四:

通过添加组件来实现换行


调整Content Size Fitter的Vertical Fit为Preferred Size(随高度的改变而改变)

设置pivot的Y轴(pivot默认为0.5是从中间向上下同时增加行数,pivot为1只向下增加行数,为0只向上增加行数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值