c# - 如何禁用操纵杆/键盘与 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”,这样操纵杆仍然可以控制玩家观看。
现在我遇到了相反的问题,操纵杆和箭头键盘键正在切换对话框中的选择,并且操纵杆按钮/空格键触发对话框中的选择。我想禁用它,以便只有鼠标可以与对话框交互,并且控制玩家移动的操纵杆。
我尝试通过重命名为“Horizontal xxx”来更改“Horizontal”“Vertical”的输入。这可行,但操纵杆也无法控制玩家的移动。那么我怎样才能制作这些单独的事件。我找不到任何监听“水平”或“垂直”事件的代码,这些似乎在 Unity 中是硬连线的?
解决方案
如果我对您的理解正确,您希望禁用除鼠标单击 UI 元素之外的所有输入。在EventySystem
场景中的对象上,选择它,然后在组件EventSystem
上有一个名为 的切换开关Send Navigation Event
。如果取消选中此框,它将禁用所有游戏手柄/键盘与 UI 的交互,并且只允许鼠标输入来选择 UI。
推荐阅读
- powershell - 使用 chef-solo 执行 Chef Cookbook
- css - -webkit-line-clamp 不适用于 electron.js
- android - Espresso 检查 TextView 文本和 ImageView Drawable 是否在一起
- oracle - 使用 Oracle Text 索引包含连字符的单词 - 排除特定单词
- assembly - 汇编语言 MIPS 平均 4 个数字
- oracle - 如何比较同一模式中 2 个单独表的两条记录并仅显示 Oracle 数据库中的差异?
- .net - 我们真的必须将这些属性 AzureWebJobStorage 和 AzureWebJobDashboardn 保留在 .net webjob 配置文件中吗?
- python - 强化学习——只有大小为 1 的数组可以转换为 Python 标量——是数据问题吗?
- html - HTML 表单:如何根据下拉选择重定向提交按钮
- c# - 如何使用 MVVM 模式删除 treeviewitem?