Unity unityscript错误

时间:2012-12-09 05:50:29

标签: loops unity3d conditional-statements unityscript

我有一个数组learnnum,看起来像[0,1,1,0,1,1,1,1,0]。

我需要基本上要求用户输入鼠标左键或鼠标右键。如果为Left,那么[i]的learnnum的值会被翻转,否则什么都不会发生。我只为i = 1,3,5,7这样做。我写了下面的代码,但它不能正常工作,而不是全部4个条件...它直接转到4.看来它不是在等待输入条件......有什么办法我可以纠正这个吗?

function changeNumba(i)
{       //check1=true;
        print ("PRINTT "+check1);
                    while(!Input.GetButtonDown("Fire1") && !Input.GetButtonDown("Fire2"))
                    {
                    if(Input.GetButtonDown("Fire1"))
                    {
                    check1++;
                    }
                if(Input.GetButtonDown("Fire2"))
                    {
                    learnednum[i]=0 ? 1 : 0;
                    check1++;
                    }
                }

}

function changelearn()
{       

        //FIRST STEP
        //if(check1)    
        if(move1==9 && check1==0)
            {changeNumba(1);

            }
        //SECOND STEP   
        if(move1==9 && check1==1)
            {changeNumba(3);

            }
        if(move1==9 && check1==2)
            {changeNumba(5);

            }
        if(move1==9 && check1==3)
            {changeNumba(7);

            }
}





var check1=0;

//1,3,5,7
function Update () {


if(move1==9)//this is just a game condition. Do not bother about it.
{
changelearn();
}

 }

1 个答案:

答案 0 :(得分:2)

从查看统一脚本api: http://docs.unity3d.com/Documentation/ScriptReference/Input.GetButtonDown.html

你的Update()方法中不应该有while()循环。

按如下方式更改changeNumba():

function changeNumba(i)
{
if(Input.GetButtonDown("Fire1")){
    check1++;
}
if(Input.GetButtonDown("Fire2")){
    learnednum[i] = learnednum[i]==0 ? 1 : 0;
    check1++;
}
}