Unity中根据字体的长度修改字体框和背景图width的大小
Posted 喜欢悠哉独自在zz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity中根据字体的长度修改字体框和背景图width的大小相关的知识,希望对你有一定的参考价值。
字体框的宽和背景图的宽自适应字体的长
即:改变字体的长度,显示字体的字体框的宽和背景图的宽也会跟着改变
注:脚本挂载在canvas的image下,字体Text是image的子物体
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 根据字体的长度,背景图片的宽度和显示字体的宽度也会相应改变
/// 挂载在背景图上
/// </summary>
public class SelfAdaption : MonoBehaviour
{
private Transform font;
private float fontLength;
void Start()
{
font = transform.Find("Text");
fontLength = font.transform.GetComponent<Text>().text.Length;
Debug.Log(fontLength);
//根据字体的长度改变背景图的长度
//fontLength大于8的时候,每个字占的背景就要小一点
if (fontLength <= 7)
{
//字体
font.GetComponent<RectTransform>().sizeDelta = new Vector2(fontLength * 15, 20f);
//背景
transform.GetComponent<RectTransform>().sizeDelta = new Vector2(fontLength * 15, 20f);
}
else
{
font.GetComponent<RectTransform>().sizeDelta = new Vector2(fontLength * 12.5f, 20f);
transform.GetComponent<RectTransform>().sizeDelta = new Vector2(fontLength * 12.5f, 20f);
}
}
}
以上是关于Unity中根据字体的长度修改字体框和背景图width的大小的主要内容,如果未能解决你的问题,请参考以下文章