按钮明明在,为什么就是点不到?先看一次真实 Preview 点击

最近我一直在解决一个很具体、也很磨人的问题:按钮明明在,层级看着也没问题,Preview 里就是点不动。

这种时候最耗时间的不是改,而是不知道先查谁——是上面盖了 BlockInputEvents,还是 Mask、Canvas、Camera,或者事件在传播中途被停掉了?

所以我做了 Cocos Doctor。第一步不是猜,而是记录一次真实 Preview 点击。

22 秒案例短片(B 站审核通过后即可播放):
https://www.bilibili.com/video/BV1PnKm6dEKA/

在 macOS 的 Cocos Creator 3.8.8 里,它会在当前可靠支持的范围内告诉你三件事:这次实际点中了谁、最后交给了谁、又在哪里停住。它不会拿矩形重叠冒充真实 hit-test;证据不够,就明确标成“不支持”或“需要确认”。

如果碰到当前支持的修复项,可以先看它准备改哪些属性,再决定要不要应用。修复前后用同一个操作各跑一遍:之前点不到,改完能点了,才标记为已验证。需要撤回,也可以撤回这一次修改。

另一个入口是四屏体检:16:9、19.5:9 + safe area、4:3 / tablet,以及当前自定义分辨率。扫描不写项目,结束后恢复原视口。

首发实机范围:

  • macOS
  • Cocos Creator 3.8.8
  • 本机需要安装兼容的 Google Chrome

Windows、Linux 和其他 Creator 版本不在 1.0 首发实机承诺内。

核心排查不配 API Key 也能完成。AI 只是可选解释层;要发送的内容会先给你看,要不要联网由你决定。

Cocos Store:
https://store.cocos.com/app/detail/9113

首发优惠(北京时间):
2026/7/21 00:00—2026/8/4 00:00,¥239
日常价 ¥299

中文安装视频:
https://www.bilibili.com/video/BV1tPNZ6WE49/

如果你也卡在“按钮明明在,却点不到”,可以回复 Creator 版本、操作系统、附近可能相关的节点,以及最短复现步骤。我会先看这个真实问题,不需要你发完整项目。

请不要公开项目文件、公司或人员名称、路径、账号、密钥、订单信息或商业 ZIP。

// 调试都哪些节点被点击
const DEBUG_HIT_TEST = false;
if (CC_PREVIEW && DEBUG_HIT_TEST) {
    const originHitTest = cc.Node.prototype._hitTest;
    cc.Node.prototype._hitTest = function(point, listener) {
        // 获取 node 路径
        const result = originHitTest.call(this, point, listener);
        result && console.log("hitTest:", this[" INFO "]);
        return result;
    };
}

2.x 可以试试我这段脚本

3赞

这种东西居然也能写个插件拿出来卖,我是想不到的。 :stuck_out_tongue:

而且这价格。。。。应该卖9999才对

9999还是太便宜了,应该再贵一点

有了ai后 就会有越来越多这种插件了 遇到问题先写个插件

这也能写个插件…还上架…水平没话说,太…太强了…建议卖999999

谢谢你贴的 2.x 脚本,简单场景下确实很实用,也能解决不少问题。

我做 Doctor,是因为自己在 3.8.8 里排查复杂 UI 点击时,经常只知道“没响应”,却看不出事件被谁挡住、在哪停了。目前我也只承诺支持 Creator 3.8.8。和普通日志脚本相比,它更想解决的是:把一次真实点击的命中、传递和阻断原因串起来,修完后再用同样操作验证。

239 元确实不适合所有人。偶尔遇到一次,现成脚本能解决就够了;如果经常被这类问题卡住,再考虑它。也欢迎发一个脱敏后的最小复现,我可以先帮你看。

(帖子被作者删除,如无标记将在 24 小时后自动删除)

神了299,还是太便宜了

个人认为,这种插件是在侮辱开发者。 :rofl:

+10086

虽然定价自由,但是溢价太高,感觉有点坑新人,建议平台加强审核条件

你真当他是程序员?可能就是个外行,用ai写了个插件在这里招笑呢。这玩意还写插件这看都不用看就知道是啥问题

商店里的说明是不是也是ai写的,还是大厂的都是这种文风,我这小白读不下去。。