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);
    }
}
相关推荐
ANnianStriver9 小时前
PetLumina 04 — 管理后台 UI 全面升级
java·ui·ai编程
winlife_9 小时前
全程用 AI 做一款商业级手游 · EP9 收尾与复盘:做到了哪,没做到哪,边界在哪
java·开发语言·人工智能·unity·ai编程·游戏开发·mcp
ANnianStriver11 小时前
PetLumina 05 — App 端 UI 效果应用
java·ui·ai编程
EQ-雪梨蛋花汤11 小时前
【Unity笔记】Unity URP 透明玻璃出现白色光斑?Directional Light 镜面高光问题分析与解决
3d·unity·数字孪生
小小龙学IT11 小时前
Midscene.js:AI驱动的跨平台UI自动化革命
javascript·人工智能·ui
Wenzar_12 小时前
Playwright 实战:高可信 UI 回归验证流水线
java·ui
游乐码12 小时前
Unity基础(十三)资源卸载
unity·游戏引擎
winlife_12 小时前
全程用 AI 做一款商业级手游 · EP7 表现层与手感:从“能跑“到“摸起来爽“
java·开发语言·人工智能·unity·ai编程·游戏开发·mcp
冰糖橘子ABC12 小时前
Unity 动作重定向
unity·游戏引擎
程序员正茂13 小时前
Unity3d程序发布后自动显示发布日期
unity