在做UGUI的时候,发现就是如果在垂直布局的里面,再加一个垂直布局,那么在生成预制体之后,就是预制体会重叠。
但是,实际上呢,你所有的操作都没有错,但是为什么预制体还会重叠呢?
过了一会你会发现,Unity会自动把预制体归位。。。但是这一会,有点长,一下代码就可以让页面布局刷新。
用在生成完预制体,直接调用这个函数就可以了。
/// <summary>
/// 刷新content的高度,使得item之间不叠加
/// </summary>
/// <param name="rect">有layout组件的窗体</param>
///
public void UpdateLayout(RectTransform rect)
{
LayoutRebuilder.ForceRebuildLayoutImmediate(rect);
Vector3 vecScale = rect.localScale;
float height = rect.rect.height;
while (rect.rect.height == 0)
{
Debug.Log(rect.rect.height);
LayoutRebuilder.ForceRebuildLayoutImmediate(rect);
}
}