不知道是不是(cc.Widget).updateAlignment()存在bug(ccc2.1.2)

this.node.getComponent(cc.Widget).updateAlignment();

以上调用了以后,node的position 输出的确是最新值。

但是,当我立即再执行:

//await TimeUtil.delay(4);//延迟4毫秒
let newPos = this.node.position.add(cc.v2(value,0));
this.node.setPosition(newPos);

node的坐标第一次发生了变化,重新创建这个node,上面的代码执行了,可惜坐标却不变了;但是如果把延迟4毫秒打开,无论创建多少次都会正常了。这是为什么?

第二次以后setPosition代码不生效了?

加了延迟,哪怕不执行(cc.Widget).updateAlignment();,坐标也是正常的。

我把Node上的cc.Widget组件删除,就好了,不需要执行延迟操作了。

感觉这个cc.Widget好像有点问题,同一个Prefab再第二次创建以后,就有点不正常了。

https://docs.cocos.com/creator/api/zh/enums/Widget.AlignMode.html