button组件重大bug(特定情况下点击事件无法响应)

  • 操作流程:先点击button2再点击button1,button1点击无效。

  • Creator 版本: 3.4.0

  • 目标平台: Chrome浏览器

  • 演示效果:

button2操作只修改了button1的active

测试项目:
NewProject1.rar (6.3 KB)

3.4.1的修改也是不完善的,这么改还是不能解决我这种情况。

我这种改法能解决,但是没具体测过其他情况。


@PP

顶顶顶顶顶

来了来了,马上带着引擎工程师来见大家。

顶顶顶,引擎工程师呢

日常翻车,一如既往,你大概是不知道这个button坑的我多惨上一个项目。。我一拿到这个bug,我就知道我的代码该怎么写了,不信你看:

console.log("btn2");
this.node1.active = false;
setTimeout(() => {
     this.node1.active = true;
}, 300);

亲测最新版的beta0119一样存在,加个延迟就好了,年前不大可能出的了3.4.1,出也是bug一堆,
@jare 说3.x bug少不过是一种宣传手段,谁用谁知道,但是其实2.x 普通的bug少很多,但是2.x原生端比较卡顿,综合下来还是建议用3.x,因为我不怕遇到bug,普通的bug我觉得都可以解决,而且我遇到bug就发出来给官方。希望可以早日解决

2赞

下一帧这操作熟练的让人心疼 :crazy_face:

2赞

3.Xbug是真的多,而且不是说原生的性能也不好吗(我还没用到原生)。坐等引擎大大调好原生性能再上。 :smile:。不过看他源码改动也确实大。。。

3.x更卡顿

点击可以加个布尔值过滤

抱歉,这里是 add 和 remove eventProcessor 的互斥没有做好,可以先参考下边这个修复方式

比较晚了,没来得及提 pr,回头我们把修复在 3.4.2 补上,春节后会有一个版本

遇到了 很无语的bug

亲测这个方式可以修复楼主的这个问题,但是又引发了另外一个button问题:点击按钮弹出弹窗,接着想点击弹窗的关闭按钮,会出现无法点击这个关闭按钮。弹窗节点加了blockInput组件。于是我改回来引擎源码重新编译后就可以点击关闭按钮了。版本是3.4.1beta0119

了解,可能这种修复方式还会导致一些情况,我们确认下

3.4.0我目前也碰见了类似的情况,节点绑定了触摸事件,然后关闭节点后延迟几秒显示节点,再点击节点就不触发事件了

你好,我这边本地没能复现你说的问题,这是我的测试工程,可以帮忙看看我的复现方式有没有问题吗
event_bug_demo.zip (1.5 MB)

或者你这边方便提供一个简单的 demo 吗

因为我之前的代码已经改过很多次了,现在我这边已经无法复现,但是可以肯定的是,我之前确实是复现了的,而且是同一个一模一样的项目,这次估计难以遇到了,所以下次我说bug时候希望可以早点问我拿demo,当然得看我有没有时间(这几天又提交了几个bug,过段时间再问我估计就没法复现了)。不过在我导入你的demo项目的时候中是会出现各种爆红,总之现在这个版本是随便导出导入一个预制体或者别人的项目都是会各种爆红各种问题,我现在都只要可以运行都懒得理了。如下图:

嗯,抱歉,这个报错可以暂时忽略,应该还可以做 web 预览,不过 demo 里是没有复现的

你的项目里点击按钮打开一个 弹窗,跟你确认一下几个事情

  1. 弹窗是怎么实现的呢,是每次弹窗都实例化一个 prefab 吗,还是只是控制节点的 active 属性
  2. 弹窗有做 scale 缩放动画吗
  3. 弹窗的层级结构是怎么样的呢,按你的描述,我的理解应该是这样的
    企业微信截图_20220214105047

你的理解是正确的,没有任何缩放,只是控制节点的active

嗯嗯,暂时没有再复现,我们会持续关注一下这个问题的相关反馈

他那个大概率是编译缓存问题,这个修复是没问题的,但是那个sort里面node isvalid false的问题依然要改