Unity Input System中IsPressed()失效及输入异常问题排查与解决
Unity新Input System持续输入失效问题解决
场景与问题
通过Package Manager安装Unity新Input System后,我写了单例模式的InputManager类来统一获取输入,但遇到两个奇怪的问题:
IsPressed()方法返回的布尔值异常:按住GunInput按键时能正常返回true,但只要移动鼠标,这个值就会被强制设为false- 移动鼠标的同时,无法读取SentryMove的向量输入,所有持续按住类的输入都出现冲突失效的情况
排查与解决
反复调试后发现问题出在控制方案的设置上:
之前我把鼠标和键盘分成了两个独立的控制方案,而Unity新Input System的机制是同一时间只会激活一个控制方案,触发其中一个时另一个会被自动禁用。
把鼠标和键盘的输入绑定合并到同一个控制方案后,所有持续输入的问题都彻底解决了,IsPressed()能稳定返回正确状态,同时操作鼠标和键盘的输入也不再冲突。
内容的提问来源于stack exchange,提问作者G-han
相关产品推荐
相关产品推荐

