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的大小的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D 之UGUI 文本框和编辑框

Unity3D 之UGUI 文本框和编辑框InputField

如何修改WebStorm的背景色和字体大小

如何配置Linux命令行的字体和背景颜色

WebStom软件修改字体和桌面背景

UGUI 字体背景长度自适应