常驻节点NODE的宽度随窗口变化,
CLICK_NODE
虽然设置了宽度640 但如果此时将 模拟器窗口放到最大 则打印这个CLICK_NODE的宽度是 1826
无论 CLICK_NODE的widget是否设置了 左右对齐方式

这将导致起子节点位置错误!
子节点是个 动画如图位置 (0,0)
如果将模拟器最大化 也就是宽度为1826的时候
原来的(0,0)位置 却偏右了大概
这么多
@引擎组大佬
这应该是个底层的BUG!
常驻节点NODE的宽度随窗口变化,
无论 CLICK_NODE的widget是否设置了 左右对齐方式

这将导致起子节点位置错误!
子节点是个 动画如图位置 (0,0)
如果将模拟器最大化 也就是宽度为1826的时候
原来的(0,0)位置 却偏右了大概
@引擎组大佬
这应该是个底层的BUG!
要是不勾选 安全区域, CLICK_NODE的宽度是可以锁定在640上的 但其子节点的位置仍不准确!
系统提示弹框,联网进度条,等每个场景都可能用到的全屏UI 要做成预制体吗?
在需要的时候 加载,关闭的时候销毁?
类似如下方法?
在resources下创建prefab,动态加载。(在关闭窗口的地方销毁自己)
cc.loader.loadRes(“prefab/fbConf”, cc.Prefab, function (err, prefab) {
if (err) {
cc.error(err);
} else {
//TODO
var conf = cc.instantiate(prefab);
conf.parent = cc.find(“Canvas”);
conf.getComponent(‘fbConf’).showConf();
}
});
常驻节点主要传数据用,并不适合做ui(如无必要,不怎么建议用,数据完全可以建全局的数据)。对齐组件需要有父节点,默认自己上级节点。是的没错,系统提示等都是用预制件(我目前的项目是如此,不禁是提示,所有的功能窗口全是预制件),你可以延迟销毁,避免用的时候每次都必须要创建。
当时没用预制体而已 常驻节点是因为 想着,如果有个提示框弹出的时候 正好场景转换,也就是在这个弹出框下,两个场景切换也不影响!
确实有常驻节点的需求,比如聊天框,在每个场景都有,也不想频繁创建,销毁
本身就是同一个聊天的节点,这个不做成常驻节点 确实很难办到把!
预制件理论上也可以做到没影响,生成后不扔在canvas下,脚本里添加个常驻开关。一样性质

如果说做适配的话,生成时先扔在canvas下,调用一下立马刷新适配组件的那个函数,然后再扔出去。换场景临时关闭一下。理论上是这样,没处理过这种功能,我做的都是单场景。
你的意思是 常驻节点上挂 管理类代码,无UI
然后 根据需要 创建预知体 挂到当前的 canvas上,对话框之类的UI可以这么做
如果是 聊天框,这种不需要关闭的节点,则在切换场景时 更换到当前场景的canvas,这样就不用关闭了!
总之,需要显示UI, 不用常驻节点,用预制体,
就算是常驻节点的Ui,也要挂到canvas下,而不是直接显示到场景上!
并不是说需要常驻的扔在canvas下。而是说切场景前扔出去,切场景后初始化时先扔在canvas下做适配,然后再扔出去作为常驻节点使用,当然也可以直接扔在canvas下,主要看自己实际项目来决定
常驻节点 放不到canvas下吧!
代码动态控制。理论上放的时候关掉不就行了,扔出去打开不就行了。在家抱着手机逛的论坛,你可以自己测试下。
好的,老铁!明白啦!
看这里有demo代码 应该就是底层BUG