2.0.8widget组件(updateAlignment 立刻执行 widget 对齐操作。)失效

事实不是立刻执行对齐,而是update第一次执行的时候才会执行.这样子我动态加载的预制体调用的函数里面如果有这个widget相关操作,都会失效.

1赞

@jare

@Colin Collins

也就是说我实例化一个预制体,然后将它添加到场景,然后执行updateAlignment,无法实现对齐效果?

晕…我上次回复的竟然被吞了…
情况是:我实例化一个预制体,然后将它添加到场景,然后执行updateAlignment,然后设置这个预制体的x,y会失效.

其实并不是失效了,而是被覆盖掉了,因为widget的自动对齐执行时间是start后update前,而你生成预制体以后,start还没有执行,你就调用了updateAligment(哪怕你在start里调用也没用),你这一些都执行完了,等到prefab实例运转起来,widget的自动对齐会执行。
还有一个问题就是启动渲染的问题,你可以试试延迟创建prefab的实例,然后再延时调用updateAligment试试,估计能给你惊喜。

也就是手动设置position无效是吧?

我知道这样可以解决,但是这个行为感觉不是很合理.

是的,

其实这个问题我还专门发过个帖子说,就是widget对位时机不合理的事情,反正这么久了,我估计仍然没有处理好,应该是牵涉到了比较多东西吧。

widget组件调整之后需要延迟一帧之后才能setPosition。
这两个操作都是对节点的postion进行操作,是异步进行的。
使用widget还是setPosition 自己考量一下。

好吧…谢谢你了.

看来是了.只能自己想办法了.谢谢回复~~

start回调里widget竟然还没计算完成,这个非常不合理啊,这么久了这问题都不考虑修改嘛?