Unity安卓构建后新事件系统UI点击失效问题求助
Unity安卓构建后UI事件无响应(关联新输入系统+FirstPersonController)
问题详情
- 背景:重装Windows系统丢失Google Play Keystone文件,新建Unity项目迁移原项目Assets文件夹(排除Google Play相关内容),外部存档保留。
- 异常现象:
- 编辑器及设备模拟器中,新事件系统搭配FirstPersonController运行完全正常;
- 安卓构建完成后,所有UI点击操作无响应;
- 单独创建空场景,仅添加Canvas和带EventSystem的按钮,安卓构建后功能正常;
- 一旦在场景中加入新输入系统和玩家预制体(FirstPersonController),安卓构建的事件系统立即失效。
可排查方向
- 输入系统冲突检查
- 确认项目仅启用新输入系统:进入
Edit > Project Settings > Player > Other Settings > Configuration > Active Input Handling,确保只勾选Input System Package (New),避免新旧输入系统共存导致安卓端事件优先级冲突。 - 检查FirstPersonController的输入绑定:查看控制器的动作映射,确认没有占用触摸/点击类输入通道,防止UI事件被拦截。
- 确认项目仅启用新输入系统:进入
- 事件系统模块验证
- 替换EventSystem的输入模块:删除场景中EventSystem组件默认的
StandaloneInputModule,添加TouchInputModule(新输入系统适配的触摸模块),否则安卓触摸事件无法被正确识别。 - 检查Canvas渲染模式:确保Canvas使用
Screen Space - Overlay或Screen Space - Camera,World Space模式可能因射线检测参数设置不当导致UI触摸失效。
- 替换EventSystem的输入模块:删除场景中EventSystem组件默认的
- 构建配置清理
- 启用安卓触摸权限:进入
File > Build Settings > Android > Player Settings > Permissions,确认Touchscreen Input权限已勾选。 - 清理构建缓存后重建:执行
File > Build Settings > Clean Build,清除旧构建缓存可能残留的异常配置。
- 启用安卓触摸权限:进入
- 玩家预制体干扰排查
- 移除玩家预制体中自定义的触摸监听脚本:排查是否有脚本拦截了触摸事件且未传递给UI事件系统。
- 调整射线检测图层:在EventSystem的
Physics Raycaster组件中,将玩家所在图层排除,避免玩家对象遮挡UI射线检测。
远程协助请求
经过上述排查仍未定位问题根源,希望有经验的开发者能通过AnyDesk远程协助我进一步排查。
内容的提问来源于stack exchange,提问作者DD DD
相关产品推荐
相关产品推荐

