【问题标题】:Movement and Jump doesn't work simultaneously移动和跳跃不能同时工作
【发布时间】:2020-08-27 05:15:59
【问题描述】:

这里要改变什么让我的角色向前移动,也可以跳跃?

public class PlayerJump : MonoBehaviour {

    public float jumpForce = 10f;

    private Rigidbody2D myRB;

    public float speed = 2f;

    void Start () {
        myRB = transform.GetComponent<Rigidbody2D> ();
    }

    public void FixedUpdate () {
        myRB.velocity = Vector2.right * speed;
    }

    public void Jump () {
        myRB.velocity = new Vector2 (myRB.velocity.x, jumpForce);
    }
}

【问题讨论】:

  • 请重新格式化你的代码,最好提供一个完整的例子来说明问题。

标签: unity3d


【解决方案1】:

考虑使用rb.AddForce(transform.up * jumpHeight, ForceMode2D.Impulse); 发生的情况是您在移动时正在重置垂直速度。因此,您还需要考虑您当前在 y 轴上的速度,使用 myRB.velocity = new Vector2(speed, myRB.velocity.y);

【讨论】:

    【解决方案2】:

    Vector2.rightVector2(1, 0),所以在固定更新中你所有的垂直速度都设置为 0。对于移动,您需要与跳跃类似的东西(保持垂直速度)。

    myRB.velocity = new Vector2(speed, myRB.velocity.y);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多