Unity开发微信小程序-避开新InputSystem有关坑

cs 复制代码
            _clickAction = new InputAction("Click", InputActionType.Button);
            _clickAction.AddBinding("<Mouse>/leftButton").WithInteraction("press(behavior=1)");
            _clickAction.AddBinding("<Touchscreen>/primaryTouch/press").WithInteraction("press(behavior=1)");
            _clickAction.AddBinding("<Touchscreen>/press").WithInteraction("press(behavior=1)");
            _clickAction.AddBinding("<Pen>/tip").WithInteraction("press(behavior=1)");
            _clickAction.AddBinding("<Pointer>/press").WithInteraction("press(behavior=1)");
            _clickAction.AddBinding("<Touchscreen>/primaryTouch/press").WithInteraction("tap");
            _clickAction.performed += OnClickPerformed;
            _clickAction.Enable();

问题

我一开始想着要覆盖各种平台的各种点击情况,建立了这一套创建新InputSystem的代码。

结果在导出微信小游戏,在屏幕上暴力快速多次点击后,OnClickPerformed不再执行了。

原因

当其中任意一个 binding 的 interaction 卡在 started/inProgress,整个 action 的 performed 都可能被你"等 release"给锁死

解决办法

删除多余的press判断:

cs 复制代码
_clickAction = new InputAction("Click", InputActionType.Button);
            // 一个就够:<Pointer>/press 本身就覆盖 mouse/pen/touch(大多数平台)
            _clickAction.AddBinding("<Pointer>/press").WithInteraction("press"); 
            // 或者显式 behavior=0
            // .WithInteraction("press(behavior=0)");
            _clickAction.performed += OnClickPerformed;
            _clickAction.Enable();

纯属没事找事。

相关推荐
玄米乌龙茶1237 小时前
LLM成长笔记(十三):系统设计与项目实战
笔记·unity·游戏引擎
_Evan_Yao14 小时前
游戏和编程两不误:用Unity做一个简单小游戏
后端·游戏·unity·游戏引擎
冰凌糕16 小时前
Unity3D Shader 渲染状态详解
unity
郝学胜-神的一滴16 小时前
[简化版 GAMES 101] 计算机图形学 10:反走样与深度缓冲核心解析
c++·unity·godot·图形渲染·three.js·unreal engine·opengl
咖啡八杯1 天前
微信小程序人脸认证1.0迁移2.0
后端·微信小程序
xshirleyl1 天前
微信小程序开发week8-慕尚花坊项目
微信小程序·小程序
技术探讨者2 天前
极境导表工具 —— 让配置数据成为游戏开发的效率引擎
unity·编辑器·ai编程·游戏策划
游乐码2 天前
Unity基础(六)小案例
游戏·unity·游戏引擎
admin and root2 天前
Claude+Trae大模型 配置Chrome MCP联动Yakit自动化渗透测试
微信小程序·渗透测试·自动化·攻防演练·ai安全·claude code·ai自动化渗透测试
Sator12 天前
Unity2022版接入MCP
unity·ai编程