在代码中复制上、下、左、右 UI 选择以用于语音控制

Replicate up, down, left, right UI selection in code for use with voice control

我有一个统一项目,我们的任务是添加简单的语音控制上、下、左、右 UI 选择功能。这是为了复制上、下、左、右按键功能。

我对语音识别工作没有任何问题。我只是不知道如何在代码中向上、向下、向左或向右移动选择。令人沮丧的是,我找不到有关如何复制箭头键按下的信息。我希望能够使用 SendKeys() 但这在 Unity 中似乎不可用。有没有办法在 Unity 中做到这一点?

非常感谢任何帮助。

你必须自己解决语音识别部分,因为我只简单地使用过它,但我怀疑 "ok, now that I know that the user said 'next' I am not sure how to go to the next field" 部分是你需要帮助的部分。

Selectable selected = EventSystem.current.currentSelectedGameObject.GetComponent<Selectable>();

这将获取当前所选内容的 Selectable 组件的实例。这可以是一个按钮、一个输入字段或其他东西。有一堆东西继承自它。

现在,导航:

selected.FindSelectableOnLeft();
selected.FindSelectableOnRight();
selected.FindSelectableOnUp();
selected.FindSelectableOnDown();

还有你的四个方向。一旦你有一个 Selectable to target,只需在它上面调用 Select()

并非所有这些都保证 non-null(甚至 selected 也可能为空!)因此您需要在执行任何其他操作之前执行空检查。

希望补齐缺失的部分。