在一个游戏中,我想做一个快速的时间事件,可以失败,应该按错按钮。但我不知道如何才能让每个按钮都能触发它。当然,除了在void Update中为每个按钮制作Keycode之外,肯定还有其他选择,对吗?
如果我理解正确的话,你希望每个按钮都以某种方式行动,除了一个。让我们称之为 "错误按钮"。然后你可以通过它的名字或它的标签来区分这个按钮。
如果错误按钮的标签不同,你可以在Update()中像这样比较标签。
private string WrongButtonTag = "wrongButton";
void Update()
{
if(Input.GetButtonDown("yourKey") && !this.CompareTag(WrongButtonTag))
{
//add your code logic for correct buttons here
}
}
不过你可能需要事先分配标签,比如通过调用这个函数。
private void AssignWrongButtonTag()
{
this.tag = WrongButtonTag;
}
编辑:
在评论之后,我认为这是个好办法。你必须把所有的按钮都放到一个列表中,然后在Update函数中使用这段代码。
public List<GameObject> buttonList = new List<GameObject>();
void Update()
{
if(Input.GetButtonDown(<your input key here>)
{
foreach(GameObject button in buttonList)
{
if(!this.CompareTag(WrongButtonTag))
{
continue;
}
//add your code logic for correct buttons here
}
}
}