当前位置: 首页 > news >正文

Unity 文字高度自适应

期望

文字有字号限制,输入文字文字后先判断高度是否适用于限制字号,若处于最小字号时高度任不适用,则调整RectTransform 的高度。

核心代码

每次输入文字时先将字号设定为原始字号。

comp.fontSize = fontSize;
comp.text = content;

 拓展Text 调用自适应脚本里的设定文字方法。

public static class ExtensionText
{
    public static void SetText(this Text text, string content)
    {
        if (text.GetComponent<AdaptiveText>())
        {
            text.GetComponent<AdaptiveText>().SetText(content);
        }
        else
        {
            text.text = content;
        }
    }
}

添加LayoutElement 组件用于限制最小高度。 

 添加ContentSizeFitter 组件用于自适应高度。

判断当前高度是否大于最小高度。

needAdapt = rect.rect.height > element.minHeight;

 当前高度大于最小高度,则先调整字号。

currentSize = comp.fontSize;
while (minSize < currentSize)
{
    currentSize--;
    comp.fontSize = currentSize;
    yield return new WaitForEndOfFrame();
    if (!needAdapt)
    {
        break;
    }
}

效果

http://www.dtcms.com/a/52036.html

相关文章:

  • 微信小程序开发 中 “安全区域“
  • 【ubuntu20】--- 搭建 gerrit 最新最详细
  • 代码随想录算法训练营第六天|Leetcode454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
  • 【编程实践】pymeshlab的meshing_close_holes参数设置
  • 达梦数据库系列之Mysql项目迁移为达梦项目
  • 代码随想录算法训练营 | 图论 | 孤岛总面积、沉没孤岛
  • GPTs+RPA赋能智慧校园:构建下一代教育智能体的技术实践
  • RK3588开发笔记-fiq_debugger: cpu 0 not responding, reverting to cpu 3问题解决
  • Dify 开源大语言模型应用开发平台使用(二)
  • 软考高项笔记 1.1.1 信息
  • Raven: 2靶场渗透测试
  • ​Unity插件-Mirror使用方法(八)组件介绍(​Network Behaviour)
  • 【Linux】http 协议
  • 3427. 变长子数组求和
  • 【YOLO V5】目标检测 WSL2 AutoDL VScode SSH
  • 基于编译器特性浅析C++程序性能优化
  • Vue基础
  • 【Linux】自定协议和序列化与反序列化
  • 跨域-告别CORS烦恼
  • 【C++设计模式】第七篇:桥接模式(Bridge)
  • @PostConstruct注解的作用
  • 基于websocket的多用户网页五子棋 --- 测试报告
  • 小微企业友好方案:低成本智能客服系统如何落地
  • C# 基础知识总结(持续更新中...)
  • 数据仓库建模方法论:起源、发展与深度对比解析
  • ICLR 2025|香港浸会大学可信机器学习和推理课题组专场
  • 密码学基础-Hash、MAC、HMAC 的区别与联系
  • 计算机毕业设计SpringBoot+Vue.js个人博客系统(源码+文档+PPT+讲解)
  • react 19版中路由react-router-dom v7版的使用
  • 厦大第三发:《DeepSeek大模型及其企业应用实践》