我有一个数组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();
}
}
答案 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++;
}
}