**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。
这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
25天前关闭。
Improve this question
我正在做一个Unity引擎的游戏。对于移动,我使用了vector2。但是对于vector2,你需要垃圾邮件的按钮,以便球员移动。所以我尝试“while”函数来循环这个过程。下面是主要代码
if (Input.GetKeyDown(KeyCode.W))
{
i = 5;
}
//test
if (Input.GetKeyUp(KeyCode.W))
{
i = 1;
}
while(i !=1)
{
rb.AddForce(Vector2.up * JumpForce);
}
然而,当我运行它的时候引擎崩溃了。为什么?只是让你知道,没有编译器错误。
2条答案
按热度按时间6mzjoqzu1#
在Unity中,物理运动应该在
FixedUpdate
中完成,输入检查在Update
中完成。如果你在
Update
中添加了一个while
,它将卡在那个帧中,冻结主循环,引擎不能轮询新的输入,所以你的Update
不能继续。htrmnn0y2#
重复的addforce可能对PC来说有点多。
请执行以下操作:
这样,它只在按住键时移动。