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

【Unity】Unity中ContentSizeFitter有时无法及时自适应大小问题解决

一、问题

unity中在做对话框跟随文本大小变化时,按照如下图设置时,绝大部分情况下都没有问题,但是小概率会出现对话框背景无法自适应文本的大小。

文本
文本
文本父节点,也就是文本的背景框
在这里插入图片描述

二、原因

是因为这个组件是在启用的下一帧执行的,所以我们会发现对Content的子物体重新赋值以改变其长度或者重新失活再激活子物体,可以使其刷新、生效。上面文本的背景小概率出现问题是因为刷新的下一个文本和上一个文本行数不一样,导致自适应不及时,

三、解决

解决此问题首先确认图示组件是否都正确配置,然后在赋值处加入以下两句代码

Canvas.ForceUpdateCanvases();
LayoutRebuilder.ForceRebuildLayoutImmediate(“你的ContentSizeFitter组件的RectTransform”);

也可以直接写一个ContentSizeFitter的扩展类

using UnityEngine;
using UnityEngine.UI;public static class ContentSizeFitterExtension
{public static void ResetFitter(this ContentSizeFitter contentSizeFitter){Canvas.ForceUpdateCanvases();RectTransform rectTransform = contentSizeFitter.gameObject.GetComponent<RectTransform>();if (rectTransform)LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);}
}

调用方法

contentSizeFitter.ResetFitter();

Over~
觉得有用就点个赞吧
你的支持是我创作最大的动力~

http://www.lryc.cn/news/618996.html

相关文章:

  • 终端安全检测和防御技术总结
  • Python初学者笔记第二十四期 -- (面向对象编程)
  • SpringBoot集成MyBatis的SQL拦截器
  • MES系统怎么实现数字化闭环与设备预测性维护?
  • SQL180 每类试卷得分前3名
  • 单例模式,动态代理,微服务原理
  • 大数据技术入门精讲(Hadoop+Spark)
  • 当机械臂装上「智能大脑」:Deepoc具身智能模型如何重构传统自动化​
  • JavaEE 初阶第十八期:叩开网络世界的大门(上)
  • 自己动手造个球平衡机器人
  • 13.深度学习——Minst手写数字识别
  • 【自动化运维神器Ansible】playbook文件内变量定义全流程解析
  • 实时域自适应检测SOTA方案RT-DATR,刷新多个跨域检测榜单!
  • wordpress数据库文件sql导入时出现#1253错误
  • Java数据结构之ArrayList
  • 嵌入式分享合集136
  • 移动端调用大模型详解
  • 关于淘宝双十一
  • 数据分析小白训练营:基于python编程语言的Numpy库介绍(第三方库)(上篇)
  • DuckDB读取xlsx格式数据的方法比较
  • 【SpringBoot】MyBatis 动态 sql
  • 如何应对CAN总线冲突和数据丢包
  • 【c++深入系列】:万字详解模版(下)
  • 【项目设计】高并发内存池
  • AI赋能IT服务管理:从被动响应到智能驱动的跃迁
  • Linux驱动开发probe字符设备的完整创建流程
  • 【前端八股文面试题】【JavaScript篇7】什么是JavaScript的原型、原型链? 有什么特点
  • JavaScript Array.prototype.flatMap ():数组 “扁平化 + 映射” 的高效组合拳
  • 无人机三维路径规划
  • 2020/12 JLPT听力原文 问题一 4番