Content Size Fitter组件,它可以动态改变物体的宽高,但它有一个非常需要注意的点就是,它不是即时刷新,是帧末刷新,这个特性如果没注意会出现一个问题
就是你拿到加了这个组件的宽高本不是你想要的宽高
原因就是它还没有刷新
很多作者都说这个机制是一个坑点
恰恰相反,这是一个很值得借鉴的开发思路。
如果即时刷新,那如果我要加1000个物体,那它就需要刷新1000次
如果是帧末刷新,那我不管在这一帧内加多少个物体,它都只需要刷新一次就够了
但是我们需要拿到想要的实际宽高,它又没刷新该如何处理,解决方法就是在你确定完成所有物体的添加完成之后调用它的即时刷新方法即可
LayoutRebuilder.ForceRebuildLayoutImmediate(self.UI.ScrollView_parent.content:GetComponent(typeof(RectTransform)))