按下按钮时选择多个开关

时间:2019-06-16 18:27:33

标签: c# unity3d

这是一个附加到游戏对象上的脚本,游戏对象内部具有一些模型,我需要根据需要更改为左/右。

例如:我有3个型号 当我按“ D”键转到第二个模型,如果再次按“ D”键则转到第三个模型。按“ A”转到第二个模型,依此类推。

尝试过

 if(Input.GeyKeyDown("a")) {   Select(1);}
  else  if(Input.GeyKeyDown("a")) {   Select(2);}  
 else  if(Input.GeyKeyDown("d")) {   Select(1);}  

我不能上班。

这是我正在调用的函数。

 public void Select(int index)
    {
        if (index == selectionindex)
            return;

        if (index < 0 || index >= models.Count)
            return;

        models[selectionindex].SetActive(false);
        selectionindex = index;
        models[selectionindex].SetActive(true);
    }

1 个答案:

答案 0 :(得分:1)

您希望它如何工作?

让我们看一下这两行:

if(Input.GeyKeyDown("a")) { Select(1); }
else if(Input.GeyKeyDown("a")) { Select(2); }

如果按下“ a”并且它落下,则第一个语句为true,然后调用Select(1)。

然后,因为它是真的,所以它不执行else语句。

再次尝试不要按“ a”,并且第一个语句为假,因此它将检查第二个语句。

因为您没有按“ a”,所以该语句也是假的,什么也没发生。

在任何情况下都不会调用Select(2);

那您该如何解决?

好吧...您知道当前索引已经是什么了,所以...

if(Input.GeyKeyDown("a")) { Select(selectionindex-1);}
else if(Input.GeyKeyDown("d")) { Select(selectionindex+1);}