文字自适应

实现功能:

Text在达到最大长度前,gameObject会自动变大,适应文字长度

gameObject达到最大后,gameObject不再变大,Text文字自适应减小

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

[RequireComponent(typeof(Text))]
[RequireComponent(typeof(ContentSizeFitter))]
public class TextBestFit : MonoBehaviour {

	public float MaxWidth = 450f;

	private Text text;
	private ContentSizeFitter contentSizeFitter;

	void Start () {
		text = GetComponent<Text>();
		contentSizeFitter = GetComponent<ContentSizeFitter>();
	}

	private void Update()
	{
		if (text.preferredWidth <= MaxWidth)
		{
			text.resizeTextForBestFit = false;
			contentSizeFitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;
		}
		else
		{
			RectTransform tran = text.GetComponent<RectTransform>();
			tran.sizeDelta = new Vector2(MaxWidth, tran.sizeDelta.y);
			text.resizeTextForBestFit = true;
			contentSizeFitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained;
		}
		Debug.Log(text.preferredWidth);
	}
}

最新代码见github中的[TextBestFit](https://link.zhihu.com/?target=https://github.com/Hgithubcao/UnityPractice/tree/master/Assets/TextBestFit)场景
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值