Unity 2019.4编辑器新输入系统触摸模拟事件未触发求助
解决Unity 2019.4新输入系统触摸事件未触发的问题
我仔细看了你的代码和配置,核心问题主要集中在InputAction未启用以及EnhancedTouch模块初始化缺失这两点,下面一步步帮你排查修复:
1. 必须手动启用你的InputAction
你只给_touch订阅了事件,但没有调用Enable()方法激活它——新输入系统的InputAction默认处于禁用状态,哪怕在Inspector里配置好了绑定,不启用就不会响应任何输入。
修改你的Awake方法,补充启用代码:
void Awake() { TouchSimulation.Enable(); // 初始化EnhancedTouch模块(你引用了对应的命名空间,必须做这一步) EnhancedTouchSupport.Enable(); _touch.started += OnTouch; _touch.performed += OnTouch; _touch.canceled += OnTouch; // 关键:激活InputAction _touch.Enable(); }
另外,为了避免内存泄漏,建议在脚本销毁时清理订阅和资源:
void OnDestroy() { _touch.started -= OnTouch; _touch.performed -= OnTouch; _touch.canceled -= OnTouch; _touch.Disable(); TouchSimulation.Disable(); EnhancedTouchSupport.Disable(); }
2. 检查编辑器触摸模拟的全局设置
虽然你代码里调用了TouchSimulation.Enable(),但保险起见可以确认全局设置是否开启:
- 顶部菜单栏打开
Edit > Project Settings > Input System Package - 确认
Enable Touch Simulation选项处于勾选状态
3. 验证Input Action的绑定是否生效
在Inspector面板里,确认你的_touch InputAction绑定是否正确:
- 绑定类型应该是
Touchscreen > Primary Touch下的对应动作(比如Press、Tap或Drag,根据你的需求选择) - 点击绑定右侧的"Listen"按钮,在Game视图里点击拖动鼠标,看是否能检测到输入信号,以此验证绑定是否正常
4. 确认新输入系统的安装适配
如果你是刚切换到新输入系统,需要确保:
- 顶部菜单栏
Window > Package Manager中,Input System包已安装,且版本适配Unity 2019.4(建议使用2.x系列版本,兼容性更好) - 切换输入系统时Unity提示的编辑器重启操作已完成
完成这些步骤后,你应该就能在Game视图里用鼠标模拟触摸,触发OnTouch方法并看到Debug日志了。
内容的提问来源于stack exchange,提问作者The Oddler
相关产品推荐
相关产品推荐

