项目中有些时候需要用到HorizontalLayoutGroup或者VerticalLayoutGroup来动态设置一些文本等其他组件保证适中或者其他需求
![](https://img.haomeiwen.com/i19734054/6718bc0790012966.png)
![](https://img.haomeiwen.com/i19734054/8fb14d05fddcd552.png)
有时候就需要动态设置一些文本,使用 ContentSizeFitter 组件保证文本大小动态设置,如图一图二,会用到上诉组件 保证在窗口中心, 但是如果动态设置可能出现图三的情况
![](https://img.haomeiwen.com/i19734054/d313bc10a18691f5.png)
原因是因为ContentSizeFitter这个组件计算文本RectTransform会晚一帧执行,这个也能理解,虽然ContentSizeFitter有回调,但是使用起来不是很方便,包括以前使用 组件的延迟调用enble 来使他回归正常,但是使用这个发现有点麻瓜,于是找到了此方法
设置完成的时候 手动调用下 Group组件
LayoutRebuilder.ForceRebuildLayoutImmediate(Group);
这样 就会回归正常状态
ForceRebuildLayoutImmediate方法源码如下:
![](https://img.haomeiwen.com/i19734054/7679ef8ba1c6b257.png)
![](https://img.haomeiwen.com/i19734054/b4598abe94c3fa47.png)
![](https://img.haomeiwen.com/i19734054/04b573ea3d15d44d.png)
![](https://img.haomeiwen.com/i19734054/4ee78632ebf941cf.png)
![](https://img.haomeiwen.com/i19734054/97572d4a987fa259.png)
试过这样调用,发现没什么卵用,老老实实的用上面的吧
网友评论