【分享】立即更新所有Widget组件的方法

creator里的widget组件,在onLoad、start和第一次update里都不生效,实际生效是第二次update的时候。

以下代码可以立即更新所有组件上的Widget, 放在主逻辑的第一个onLoad上可以保证所有脚本加载时node定位符合预期;也可以在监测到用户窗口大小变化之后重新对齐。
PS:测试了下性能,node总数100~200个、widget组件11个,耗时3ms左右。
const canvas = cc.find(“Canvas”);
const widgets = canvas.getComponentsInChildren(cc.Widget);
for (let i=0; i<widgets.length; i++) {
widgets[i].updateAlignment();
}

(版本2.0.7,我估计对2.x版本都适用)

for迴圈跑起來怪怪的會冒紅字