首页 > 解决方案 > 如何禁用操纵杆/键盘与 Unity UFPS 中的对话框交互

问题描述

我正在使用 Unity 和 UFPS 开发带有自定义聊天控制台的 3D 游戏, https: //assetstore.unity.com/packages/tools/game-toolkits/ufps-ultimate-fps-106748

一切正常,但在 Android TV 上使用操纵杆、键盘和鼠标运行,我们想要控制哪个输入会影响什么。

所以我们希望对话框只能与鼠标交互。和仅与游戏/玩家互动的操纵杆。

原来鼠标是控制玩家看的,可以选择对话框。我能够通过以下方式禁用鼠标控制播放器,

Unity 菜单、编辑、项目设置、输入

然后找到“Mouse X”和“Mouse Y”输入事件,并将鼠标输入事件重命名为“Mouse XX”,并将操纵杆轴事件留给“Mouse X”,这样操纵杆仍然可以控制玩家观看。

现在我遇到了相反的问题,操纵杆和箭头键盘键正在切换对话框中的选择,并且操纵杆按钮/空格键触发对话框中的选择。我想禁用它,以便只有鼠标可以与对话框交互,并且控制玩家移动的操纵杆。

我尝试通过重命名为“Horizo​​ntal xxx”来更改“Horizo​​ntal”“Vertical”的输入。这可行,但操纵杆也无法控制玩家的移动。那么我怎样才能制作这些单独的事件。我找不到任何监听“水平”或“垂直”事件的代码,这些似乎在 Unity 中是硬连线的?

标签: c#unity3d

解决方案


如果我对您的理解正确,您希望禁用除鼠标单击 UI 元素之外的所有输入。在EventySystem场景中的对象上,选择它,然后在组件EventSystem上有一个名为 的切换开关Send Navigation Event。如果取消选中此框,它将禁用所有游戏手柄/键盘与 UI 的交互,并且只允许鼠标输入来选择 UI。


推荐阅读