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);
}
}
2条答案
按热度按时间kyxcudwk1#
你可以给予他们的id像0,1,2和每一次你按下键,增加当前的id.然后得到按钮与当前的id和突出显示它.这将是这样的东西;
vs3odd8k2#
假设你使用默认的Unity按钮,你可以在“导航”上查看,如果它设置为自动(默认情况下),在该属性下,你会看到一个名为“可视化”的按钮。
如果你按下它,你会看到黄色的箭头,向你显示默认的导航,你的“按键”流将做。
如果你想改变其中的一些,你可以从导航中取消选择“自动”,选择显式,然后链接你想要的可选择项。