我正在寻找一种方法,可以在按下一个按钮(使用GetKeyDown)之后将力施加到对象上,实质上是切换力。
在学习如何使用C#的过程中,尝试解决这一问题已经几天了。我正在尝试为2D平台游戏制作幻灯片或破折号,类似于Megaman滑动。到目前为止,这是我的代码,但是当我按G键时,它会向前传送我,而不是随着时间的推移给我设定的速度(我希望玩家稳步向前移动)
public float slideCount;
public float maxSlideCount;
public bool isSliding;
void Update () {
if (Input.GetKeyDown (KeyCode.G) && isSliding == false) {
slideCount += Time.deltaTime;
isSliding = true;
if (slideCount < maxSlideCount) {
rb2d.AddRelativeForce (Vector2.right * 0.05f, ForceMode2D.Impulse);
} else
slideCount = 0;
isSliding = false;
}
欣赏
答案 0 :(得分:0)
因此,标准切换如下所示:
void Update() { // User-interactions happen in the graphics-frame
if (inputDown) {
toggle = !toggle;
}
}
然后使用toggle
:
void fixedUpdate() { // Because you're applying forces, do it in the physics-frame
if (toggle) {
myRigidBody.AddForce(...);
}
}