Unity功能篇:文本框随文字内容动态调整

UI

一、通常的UI层级

二、给Text添加组件

选中TextMeshProUGUI,添加组件:

1、Content Size Fitter

Horizontal Fit:Preferred Size

Vertical Fit:Preferred Size(通常只需要高度自适应)

2、Layout Element

PreferredWidth

勾选PreferredHeight(通常只需要高度自适应)

3、TextMeshProUGUI 设置

TextMeshProUGUI 锚点设置

image跟text的Pivot的y都设置为1。

三、脚本添加

Image 挂载脚本TextBackgroundAutoSize.cs,把 Text 拖进 textTmp 字段,调整 Padding 数值,控制文字和边框的间距。

cs 复制代码
using UnityEngine;
using TMPro;

public class TextBackgroundAutoSize : MonoBehaviour
{
    [Header("文字")]
    public TextMeshProUGUI textTmp;

    [Header("边距")]
    public float paddingLeft = 20;
    public float paddingRight = 20;
    public float paddingTop = 20;
    public float paddingBottom = 20;

    private RectTransform bgRect;

    void Awake()
    {
        bgRect = GetComponent<RectTransform>();
    }

    void Update()
    {
        AutoResizeBackground();
    }

    void AutoResizeBackground()
    {
        if (!textTmp) return;

        // 强制刷新文本计算
        textTmp.ForceMeshUpdate();

        // 获取文本实际大小
        Vector2 textSize = textTmp.GetRenderedValues(false);

        // 背景大小 = 文本大小 + 内边距
        bgRect.sizeDelta = new Vector2(textSize.x + paddingLeft + paddingRight,textSize.y + paddingTop + paddingBottom);
    }
}
相关推荐
小贺儿开发4 小时前
Unity 局域网遥控幻灯片展示工具 1.0
unity·网络通信·工具·ppt·控制·网页·互动
xy34535 小时前
Axure 9.0 条形图绘制超详细教程:静态展示
ui·产品经理·axure·条形图
WarPigs9 小时前
Unity未激活的物体无法响应事件?
java·unity·游戏引擎
LabVIEW开发9 小时前
LabVIEW图标编辑器文字模糊现象
ui·编辑器·labview·labview知识·labview功能·labview程序
玖玥拾18 小时前
Unity3D RPG 入门项目(十一)主角完整战斗、怪物自动刷新、四大类型技能系统
游戏·3d·unity·游戏引擎
Behaviour20 小时前
Unity AI 生态横评对比:官方 AI Beta / Unity CLI / 团结 Codely / 社区 MCP 四大阵营选型
人工智能·unity·ai·游戏引擎·aigc·ai编程
Madokaly1 天前
基类 DG.Tweening.Tween的源码解读
unity
兰亭妙微UI设计公司1 天前
兰亭妙微B端界面设计分享:Vantary海事无人系统任务平台UI/UX设计解析
ui·ux
Behaviour1 天前
Unity游戏之Jenkins的安装部署应用
游戏·unity·jenkins