C# Input.GetKeyDown不';我叫它两次就不行了
当我调用C# Input.GetKeyDown不';我叫它两次就不行了,c#,unity3d,C#,Unity3d,当我调用Input.GetKeyDown(“space”)时,我试图让一个多维数据集以统一的方式下降,当一个多维数据集下降时,第二个多维数据集生成,当按下空格时再次下降,然而,当我再次按下它时,它不起作用,这是我的代码 void Update () { if (Input.GetKeyDown("space")) { if (!ss) { shabi.useGravity = true; shabi
Input.GetKeyDown(“space”)
时,我试图让一个多维数据集以统一的方式下降,当一个多维数据集下降时,第二个多维数据集生成,当按下空格时再次下降,然而,当我再次按下它时,它不起作用,这是我的代码
void Update ()
{
if (Input.GetKeyDown("space"))
{
if (!ss)
{
shabi.useGravity = true;
shabi.AddForce(0, 0, -100);
ss = true;
}
}
if (cube1.transform.position.y == y)
{
if (!singleExecution)
{
Rigidbody newCube = spawn();
if (Input.GetKeyDown("space")) //THE PART THAT DOESN'T WORK
{
Debug.Log("sb");
newCube.useGravity = true;
newCube.AddForce(0, 0, -100);
}
y++;
//cubeY += 2;
singleExecution = true;
}
}
}
void更新()
{
if(Input.GetKeyDown(“空格”))
{
如果(!ss)
{
shabi.useGravity=真;
shabi.AddForce(0,0,-100);
ss=真;
}
}
if(cube1.transform.position.y==y)
{
如果(!singleExecution)
{
刚体newCube=spawn();
if(Input.GetKeyDown(“space”)//不工作的部分
{
调试日志(“sb”);
newCube.useGravity=true;
AddForce(0,0,-100);
}
y++;
//cubeY+=2;
singleExecution=true;
}
}
}
函数
spawn()
用于生成另一个多维数据集,第二个输入。GetKeyDown
不起作用,感谢您回答我的问题我想问题实际上已经在前面的行中了:
if(cube1.transform.position.y==y)
由于第一个对象使用重力,一帧中的位置与y
精确匹配的几率有多大?此外,比较两个float
值可能永远不会匹配,即使该值应该相同,请参阅以了解有关该值的更多信息
这几乎永远不会是真的,因此您的代码甚至没有到达输入部分
现在你当然可以使用
if(数学近似(cube1.transform.position.y,y)
仍试图匹配精确的y
值,但匹配自由落体的几率仍然很小
相反,你应该使用定性比较,比如调试代码显示了什么?如果有重力和浮点数,我假设比较从来都不是真的,谢谢你回答我的问题!它没有显示sb,我在spawn()中将新多维数据集的重力设置为false,你在哪里将singleExecution设置为false?