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();

纯属没事找事。

相关推荐
淡海水13 小时前
【节点】[Branch节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·branch
在路上看风景13 小时前
4.6 显存和缓存
unity
程序媛徐师姐14 小时前
Java基于微信小程序的模拟考试系统,附源码+文档说明
java·微信小程序·java模拟考试系统小程序·模拟考试微信小程序·模拟考试系统小程序·模拟考试小程序·java模拟考试小程序
大尚来也14 小时前
微信小程序开发费用全解析:从SaaS到定制的多元选择
微信小程序
如果你好15 小时前
UniApp 路由导航守卫
前端·微信小程序
Zik----16 小时前
简单的Unity漫游场景搭建
unity·游戏引擎
大尚来也16 小时前
小程序怎么开发自己的小程序
微信小程序
码云数智-园园16 小时前
小程序开发平台有哪些?小程序第三方开发平台评测对比
微信小程序
在路上看风景1 天前
4.5 顶点和片元
unity
2501_933907211 天前
深圳本凡科技专业企业APP开发,助力手机应用创新优化
科技·微信小程序·小程序