我说的闪一下,是指因为刚刚加载完关卡的时候我想要让ui物体不在屏幕内,所以就在onLoad或者start里面设置其位置,但是很显然没有用,所以只能延时设置,这样的话,就会使得这个延时设置会在第一次渲染画面之后执行,so,这里会有一帧的误差。当然只是发生在场景加载的时候。
其实为什么widget的第一次对位并没有放到onLoad前,你我心里都清楚,真要放到onLoad前,要改的东西实在太多了,我也不期待什么,将就着用咯。
我只是一个做游戏的,任何对工具的底层修改,我认为都不应该发生在游戏制作者身上,应该尽可能避开。
我不清楚啊,你到底清楚啥,执行时机是很好改的,要改的东西不多啊。关键是如何在性能和易用性之前取得平衡,HTML 引擎最重要的是平衡,什么功能都做到极致,包体和性能都受不了。因此,我们要考虑的更多的是需求是否合理?是否有更好的解决方案?根据文档,你这里只要在设置某个物体前,对他的父物体的 widget 调用一次 updateAlignment 就能解决了。
至于你说的,updateAlignment 没用的问题,能给一个 demo 吗?技术上能修复的我们就尽量修复看看。
为什么要 setTimeout,能给个 demo 吗?
这个本来就是给静态ui设计的对齐策略, 如果要动态的修改, 可以在start里面先移除掉node的Widget组件,保存在本地,然后等处理完成变成静态的ui再add进去
回复这个不是想挖坟。
是想问一下我为什么源码里面找不到调用widget执行updateAlignment的代码啊。
这个是用户接口,引擎不会主动调用
哦。那源码里面能看到系统widget做适配的调用吗。
我只看到manager里面的实现。没看到调用的地方。
manager 里面有注册事件,每帧都会触发 refreshScene
一个挂了widget的prefab里面有刚体,添加到节点之后这个刚体会位移,这个怎么破,现在只能是先隐藏。