首页 > Unity3D频道 > 【Unity杂文】 > Unity3D研究院之ContentSizeFitter同步立即响应回调
2016
08-17

Unity3D研究院之ContentSizeFitter同步立即响应回调

ContentSizeFitter使用Preferred Size来设置RectTransform不能立即生效,必须要等一帧,也可以利用OnRectTransformDimensionsChange的回调方法。

但是这么做还是很恶心,最好还是能同步的计算出它的区域,一般我们可能会横向纵向的嵌套Layout。

主要就是 LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform); 这一句。 如果不想用下面的脚本。 也可以在取RectTransofrm的size之前加上这一句

unity版本:5.3.5

不废话了直接上代码啦。

然后是测试的代码, 同步把gameobject挂在Layout下,同步计算出它的size。

如下图所示,同步加载的gameobject已经可以立刻获取它的区域了
Unity3D研究院之ContentSizeFitter同步立即响应回调 - 雨松MOMO程序研究院 - 1
最后欢迎大家提出意见。

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

  1. 这能直接导入到LuaFramework_UGUI中用吗?ContentSizeFitter fitter = GetComponent(); fitter.CallBack(delegate(Vector2 size) { Debug.Log(“size =” + size); });这个直接在lua中调用,不知要不要wrap出来