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);
    }
}
相关推荐
传奇开心果编程7 小时前
【Compose Multiplatform 跨端开发学与练】第7课 平台适配与互操作
android·windows·学习·ui·ios·kotlin·composer
传奇开心果编程12 小时前
【现代声明式UI学与练】第4课 列表渲染与 key——如何高效渲染列表、key 的作用、列表重排时的状态保持
学习·flutter·react native·ui·swiftui·android jetpack
传奇开心果编程12 小时前
【Compose Multiplatform 跨端开发学与练】第5课 网络与数据层
android·网络·学习·ui·ios·kotlin·composer
Martina_032112 小时前
AI生成3D场景导入 Unity/Unreal 后,NPC 总串层?用6步检查导航高度与跨层连接
人工智能·游戏·数学建模·3d·unity·自然语言处理·aigc
小贺儿开发15 小时前
Unity 局域网遥控幻灯片展示工具 3.0
科技·http·unity·工具·ppt·通信·网页
传奇开心果编程1 天前
【SwiftUI提高练中学】第8课 网络层架构:拦截器、重试、缓存与离线优先
学习·macos·ui·ios·swiftui
传奇开心果编程1 天前
【现代声明式UI学与练】第7课 组件通信——父传子、子传父、跨层级通信、状态提升与 Context
学习·flutter·react native·ui·swiftui·android jetpack
大圣编蚕1 天前
Rancher证书轮换过期导致不能访问UI问题处理
ui·rancher
可乐ea1 天前
Agent 评测换判据:用终态数据库状态判定任务是否完成
数据库·ui·oracle·mcp工具·agent评测·终态断言·智能体可靠性
传奇开心果编程1 天前
【Compose Multiplatform 跨端开发学与练】第3课 布局与组件
android·windows·学习·ui·ios·kotlin·composer