《UGUI源码深度解析》第 17 篇 · 界面小组工作日志 基准:Unity 2022.3.62f2c1 / 本地 UGUI 1.0.0。 人物与项目情节为虚构;源码机制以本地实现为准。

一、尺寸刚改好,怎么又弹回去了?
阿澈拖动详情图片的宽度,松手后数值又变了。它的父对象有 HorizontalLayoutGroup,自己有 ContentSizeFitter,旁边还准备加 AspectRatioFitter。
我第一反应是“布局有延迟”,阿澈却指着 Inspector:“也可能是有三个人都在改这一个数。”
这次他的猜测更接近根因。我们不先加 ForceRebuild,而是列一张控制权表:谁读宽度,谁写宽度,谁又根据宽度写高度。
二、ContentSizeFitter只负责改自己
ContentSizeFitter 是 ILayoutSelfController。横纵轴分别选择 Unconstrained、MinSize 或 PreferredSize。它通过 LayoutUtility 读取本对象上的布局需求,再调用 SetSizeWithCurrentAnchors 调整自身尺寸。
源码的核心选择如下:


