提高移动速度

时间:2018-02-20 00:12:05

标签: c# unity3d

是否可以通过我走路的距离/时间来提高移动速度?此时我只能将速度设置为固定值。

void Start () {
    rb = GetComponent<Rigidbody2D>();   
}

void Update () {
    rb.velocity = new Vector2(3, rb.velocity.y);

    if (Input.GetMouseButtonDown(0) && onGround)
    {
        rb.velocity = new Vector2(rb.velocity.x, 3);
    }
}

2 个答案:

答案 0 :(得分:2)

您可能想要调查Time.deltaTime,它会显示自上一帧以来经过的时间。通过这些信息,以及您目前在每一帧中旅行的距离的知识,您可以做任何您需要的事情。

答案 1 :(得分:1)

我认为你要求的是这样的

float timeWalking = 1.0f;
void Update () {
    rb.velocity = new Vector2(3, rb.velocity.y);

    if (Input.GetMouseButtonDown(0) && onGround)
    {
        timeWalking += Time.deltaTime;
        rb.velocity = new Vector2(rb.velocity.x, 3) * timeWalking;

    }
    if (Input.GetMouseButtonUp(0) && onGround)
          timeWalking = 1.0f;
}