0

[0,1,1,0,1,1,1,1,0] のような配列の Learnnum があります。

基本的に、マウスの左ボタンまたはマウスの右ボタンの入力をユーザーに求める必要があります。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();
}

 }
4

1 に答える 1

2

Unity スクリプト 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++;
}
}
于 2012-12-09T05:59:26.213 に答える