当前位置: 首页 > 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;
    }
}

效果

相关文章:

  • 微信小程序开发 中 “安全区域“
  • 【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)
  • 董军在第六届联合国维和部长级会议上作大会发言
  • 奥运“四朝元老”华天回国参赛,伤势未愈谨慎出战全国锦标赛
  • 奥古斯都时代的历史学家李维
  • 巴方:印度上周导弹袭击造成至少40名平民死亡
  • 中巡组在行动丨①震慑:这些地区有官员落马
  • 习近平同巴西总统卢拉共同会见记者