unity3d 如何使UI面板中的底部按钮突出显示向下箭头上的顶部按钮?

bvhaajcl  于 2023-04-07  发布在  其他
关注(0)|答案(2)|浏览(146)

我在暂停菜单上有三个按钮。恢复在事件管理器中被设置为第一个选定的。选项在中间,退出到主菜单是最后一个。如果我按下控制器上的向下箭头或D键,每个按钮都正确地突出显示,但在退出到主菜单时停止,并且不重新突出显示恢复。有没有办法让恢复成为菜单中的“下一个”按钮,以便在退出后突出显示?
我并没有期待什么。我只是在寻找关于创建菜单的教程,似乎没有人解决游戏UI中非常标准的交互模式。按下应该通过垂直对齐的菜单选项集不断突出显示,而不是在最后一项停止。按下向上应该有相同的效果。

kyxcudwk

kyxcudwk1#

你可以给予他们的id像0,1,2和每一次你按下键,增加当前的id.然后得到按钮与当前的id和突出显示它.这将是这样的东西;

Button currentButton;
    int currentButtonIndex;
    List<Button> buttonList = new List<Button>() { new Button(0, "Resume"), new Button(1, "Options"), new Button(2, "Quit") };

    public class Button
    {
        public int id;
        public string text;

        public Button(int id, string text)
        {
            this.id = id;
            this.text = text;
        }
    }

    public void OnDownKeyPressed()
    {
        if (currentButton != null)
            // Deactivate previous button here

        currentButtonIndex++;

        // Here is the loop you're looking for. After the last index(button), it goes back to first(button).
        if(currentButtonIndex >= buttonList.Count)
        {
            currentButtonIndex = 0;
        }

        // Get button with id == currentButtonIndex.
        currentButton = buttonList.Find(item => item.id == currentButtonIndex);

        if (currentButton != null)
        {
            // Highlight currentButton here
            Debug.LogError(currentButton.text);
        }
    }
vs3odd8k

vs3odd8k2#

假设你使用默认的Unity按钮,你可以在“导航”上查看,如果它设置为自动(默认情况下),在该属性下,你会看到一个名为“可视化”的按钮。
如果你按下它,你会看到黄色的箭头,向你显示默认的导航,你的“按键”流将做。
如果你想改变其中的一些,你可以从导航中取消选择“自动”,选择显式,然后链接你想要的可选择项。

相关问题