当前位置: 首页 > 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.dtcms.com/a/328110.html

相关文章:

  • Flutter 基于google验证登录实现
  • HeidiSQL 连接 MySQL 报错 10061
  • Xshell连接虚拟机密码错误解决方法
  • Ansible部署应用
  • Gradle 配置教程:与 Maven 对比详解(含完整迁移指南)
  • methods和computed的区别
  • tlias智能学习辅助系统--Maven高级-继承
  • 北京JAVA基础面试30天打卡08
  • C++动态代理技术详解:实现原理与应用场景
  • Java静态代理和动态代理
  • Linux驱动开发probe字符设备的完整创建流程
  • 【游戏优化笔记】开发中如何减少建筑和树木等环境元素的资源消耗?
  • 【RHCE】自动化备份全网服务器数据平台
  • 36-综合案例开发-2
  • Chrome插件开发【manifest.json】
  • 【传奇开心果系列】Flet框架桌面程序组件Custom Ribbon自定义组件模板
  • Class34锚框
  • 分享单位开通固定公网IP,不需要找运营商申请
  • sqli-libs通关教程(41-50)
  • lesson36:MySQL从入门到精通:全面掌握数据库操作与核心原理
  • Elasticsearch JS 客户端子客户端(Child Client)实践指南
  • DAY38作业(补)
  • CTO如何通过录音转写和音频降噪,提升企业远程协作效率?
  • Secure 第四天作业
  • Linux环境部署RocketMQ
  • C++算法·排序
  • 第六十四章:AI的“觅食”之路:数据采集器设计与多源数据获取
  • DL-FWI 的三项主要任务: 网络构建, 数据生成, 训练控制
  • 跑腿APP开发未来趋势:同城O2O系统源码在智能调度与个性化中的进化
  • Spring Boot项目中调用第三方接口