打包android touch事件不触发

  • Creator 版本:3.8.8

  • 目标平台:android

  • 重现方式:
    新建空白项目,canvas挂脚本一行代码

import { _decorator, Component, Input, Node } from ‘cc’;

const { ccclass, property } = _decorator;

@ccclass(‘Main’)

export class Main extends Component {

start() {

    new Input().on(Input.EventType.TOUCH_START, () => {

        console.warn('touch !!!');

    })

}

update(deltaTime: number) {

}

}

包括button组件,都不行。也不是log没输出,确认touch没触发。
试了3.8.8,3.8.6,3.8.4,换了两个手机,都是一样,我理解各个版本的引擎 android工程模板应该是独立的把?
除了触摸不响应其他动画逻辑都正常运行
我现在有点怀疑自己了,找了半天原因,论坛也没同症状的。
是我自己本地开发环境问题??

我还是第一次见到touch事件是这么注册的。请问你是从那里学来的,链接发一下,我学习一下哈。然后我可以告诉你好像有个全局的input对象,你可以从cc里导入。你不new Input().on。而是 input.on试试呢。

1赞

找到原因了

在android里 使用input 监听 第三个参数如果不传,整个触摸就挂了
包括

new Input().on(Input.EventType.TOUCH_START, () => {
console.warn(‘touch !!!’);
})
//或者使用全局的input
input.on(Input.EventType.TOUCH_START, () => {
console.warn(‘touch !!!’);
})

正确的:
new Input().on(Input.EventType.TOUCH_START, () => {
console.warn(‘touch !!!’);
},null)

可以是null

兄弟,你还没有告诉我,new Input()这一招是从哪里学习来的

规规矩矩的 照抄文档例子,你的心率会起伏是吗

哈哈哈哈哈哈哈哈哈

兄弟,我是来找解决方案,不是来满足你的好奇心。回复一次没搭理你,你还连续剧上了。我还点先翻翻代码满足你的好奇心是吗

你喜欢抄你就抄,现在人戾气都这么大吗,那么喜欢喷人

你来论坛求教问题。至少我有尝试帮你解决问题吧。感情别人帮你就是理所应当,别人求教你点事情就是“我为啥要满足你的好奇心,我很闲吗?”你这种心态,只会朋友越来越少的。

你转行吧 我觉得你的目标是爱迪生 ,喜欢发明创造,你会很有作为的

不是的兄弟,我没感受到你是好奇,我感觉你在嘲笑,追着嘲笑 :grinning:
我回忆了一下,这么写没什么特殊原因,我需要实现输入,去翻api文档,找到了Input对象。就实例化拿来用了。毕竟文档里也没写不要直接实例化拿来用,而是只能使用实例化cc.input。

请问我哪发明创造了?
input.on(Input.EventType.TOUCH_START, () => {
console.warn(‘touch !!!’);
})
第三个参数是可选参数,本来就可以留空。
如果设计上是必要参数,那么不传应该报错
我在web,小游戏平台,运行正常,没有报错。
在android上,没有报错,表现是所有触摸事件都不响应了,整个过程我也没创作啥啊
无论是用cc.input还是new Input 问题是等价的啊,又不是换到cc.input就好了