cyberfrogg Asked:2020-12-24 05:13:31 +0000 UTC2020-12-24 05:13:31 +0000 UTC 2020-12-24 05:13:31 +0000 UTC 水平和垂直按钮控制 / Unity 引擎 772 我有两个 UI 按钮。我不想用鼠标控制它们,但我想用箭头或 WASD 来控制它们,它们被突出显示,并且通过按钮,比如说 Enter,事件被激活,就像在常规按钮上一样。(例如,在超级马里奥兄弟的主菜单中) unity3d 1 个回答 Voted Best Answer vmchar 2020-12-25T20:56:48Z2020-12-25T20:56:48Z 通常,此类功能已在 Unity UI 中实现。为了让这对你有用,你需要做几件事: 如果你想用键盘(或游戏手柄,没关系)来控制 UI,你需要一些 UI 元素来获得初始焦点。如果这个焦点不存在,那么你仍然必须使用鼠标/触摸。要将初始焦点设置到某个 UI 按钮,您需要使用 UI 事件系统。这可以通过两种方式完成:在代码中,或在舞台上的事件系统组件本身中。关于代码,您可以这样做:(EventSystem.current.SetSelectedGameObject()此方法的使用取决于 Unity 的版本 - 2018.1 的文档)。要在组件中指定选定的对象 - 选择舞台上的事件系统(它与画布一起创建)并将所需的按钮拖到“第一个选定的”字段中。该组件如下所示: 接下来,您需要弄清楚如何导航您的 UI,尤其是在使用键盘上的箭头键时如何移动焦点。您可以查看有关此主题的官方导航文档。这很简单,您在舞台上选择一个按钮并在 Button 组件的 Navigation 字段中为其提供一个值。默认值为无。选择您需要的值。之后,您可以通过单击 Visualize 按钮在舞台上看到整个导航方案 - 在舞台上,UI 对象的焦点之间的过渡将用黄色箭头绘制。例如: 如果您想使用某些特定按钮控制舞台上的导航 - 这也可以配置。默认情况下,使用键盘箭头 + wasd(指定为备用值)移动焦点。自定义您的值 - 在输入管理器中更改适当的设置。为此,请打开编辑->项目设置->输入。接下来看看Axes中的Horizontal和Vertical值。对于这些轴中的每一个,都有 4 个设置字段 - Negative Button、Positive Button、Alt Negative Button、Alt Positive Button,您可以在其中指定所需的键。为清晰起见截图:
通常,此类功能已在 Unity UI 中实现。为了让这对你有用,你需要做几件事:
EventSystem.current.SetSelectedGameObject()此方法的使用取决于 Unity 的版本 - 2018.1 的文档)。要在组件中指定选定的对象 - 选择舞台上的事件系统(它与画布一起创建)并将所需的按钮拖到“第一个选定的”字段中。该组件如下所示: