Unity - 如何在关闭暂停菜单时避免通过按钮/按键触发虚假的现实世界输入

问题描述 投票:0回答:1

我正在使用 Unity 的传统输入(不是新的输入系统),并且我有一个暂停菜单,它大部分工作正常(时间刻度为 0,我可以使用键盘或游戏手柄等进行导航)。

我试图调试的一件事是......如果我在选择“恢复游戏”按钮时按游戏手柄(A)按钮关闭“暂停”菜单,那么也会选择按(A)按钮在游戏取消暂停的瞬间由游戏本身启动,因此可以虚假地启动玩家操作。

我需要阻止游戏世界接收“导致取消暂停”的输入事件,或者是否有某种方法“吃掉”该输入,以便它不会传输到其他游戏对象/组件。或者通过其他方式清楚地检测到游戏刚刚取消暂停。

我尝试取消选中 EventSystem 对象中的“发送导航事件”,但游戏手柄无法导航按钮,我只能单击鼠标。

我想到了某种“游戏仅在最后两帧中未暂停”检查来忽略所有输入。这听起来有点愚蠢/不干净,所以我希望其他人有更好/更干净的解决方案。

unity-game-engine input menu pause
1个回答
0
投票

if (isPaused) { if (Input.GetKeyDown(KeyCode.Escape)) { UnpauseGame(); } return; }

上面是一个相当简单的用例,但希望能帮助您更好地了解我在说什么

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.