RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1062410
Accepted
cyberfrogg
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 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    vmchar
    2020-12-25T20:56:48Z2020-12-25T20:56:48Z

    通常,此类功能已在 Unity UI 中实现。为了让这对你有用,你需要做几件事:

    1. 如果你想用键盘(或游戏手柄,没关系)来控制 UI,你需要一些 UI 元素来获得初始焦点。如果这个焦点不存在,那么你仍然必须使用鼠标/触摸。要将初始焦点设置到某个 UI 按钮,您需要使用 UI 事件系统。这可以通过两种方式完成:在代码中,或在舞台上的事件系统组件本身中。关于代码,您可以这样做:(EventSystem.current.SetSelectedGameObject()此方法的使用取决于 Unity 的版本 - 2018.1 的文档)。要在组件中指定选定的对象 - 选择舞台上的事件系统(它与画布一起创建)并将所需的按钮拖到“第一个选定的”字段中。该组件如下所示:在此处输入图像描述
    2. 接下来,您需要弄清楚如何导航您的 UI,尤其是在使用键盘上的箭头键时如何移动焦点。您可以查看有关此主题的官方导航文档。这很简单,您在舞台上选择一个按钮并在 Button 组件的 Navigation 字段中为其提供一个值。默认值为无。选择您需要的值。之后,您可以通过单击 Visualize 按钮在舞台上看到整个导航方案 - 在舞台上,UI 对象的焦点之间的过渡将用黄色箭头绘制。例如: 在此处输入图像描述
    3. 如果您想使用某些特定按钮控制舞台上的导航 - 这也可以配置。默认情况下,使用键盘箭头 + wasd(指定为备用值)移动焦点。自定义您的值 - 在输入管理器中更改适当的设置。为此,请打开编辑->项目设置->输入。接下来看看Axes中的Horizo​​ntal和Vertical值。对于这些轴中的每一个,都有 4 个设置字段 - Negative Button、Positive Button、Alt Negative Button、Alt Positive Button,您可以在其中指定所需的键。为清晰起见截图: 在此处输入图像描述
    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    根据浏览器窗口的大小调整背景图案的大小

    • 2 个回答
  • Marko Smith

    理解for循环的执行逻辑

    • 1 个回答
  • Marko Smith

    复制动态数组时出错(C++)

    • 1 个回答
  • Marko Smith

    Or and If,elif,else 构造[重复]

    • 1 个回答
  • Marko Smith

    如何构建支持 x64 的 APK

    • 1 个回答
  • Marko Smith

    如何使按钮的输入宽度?

    • 2 个回答
  • Marko Smith

    如何显示对象变量的名称?

    • 3 个回答
  • Marko Smith

    如何循环一个函数?

    • 1 个回答
  • Marko Smith

    LOWORD 宏有什么作用?

    • 2 个回答
  • Marko Smith

    从字符串的开头删除直到并包括一个字符

    • 2 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5