如何切换力量

时间:2018-12-17 13:56:04

标签: c# unity3d

我正在寻找一种方法,可以在按下一个按钮(使用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;
        }   

欣赏

1 个答案:

答案 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(...);
    }
}