如何在Unity2D中设置加速?

时间:2019-11-02 21:32:50

标签: c# unity3d

我正在Unity中进行自己的“恐龙游戏”(例如在Chrome中)。但是我的恐龙加速得太快了。您可以帮我在代码中找到问题吗?

代码在这里:

void FixedUpdate()
{
    rb2d.Cast(Vector2.down, hitBuffer);
    float distance = hitBuffer[0].distance;
    if (distance > minMoveDistance)
        Fall();
    else
        Move();
}

void Fall()
{
    transform.Translate(fall);
    fall += Physics2D.gravity * Time.fixedDeltaTime;
    fall = Vector2.ClampMagnitude(fall, 90 * Time.fixedDeltaTime);
}

void Move()
{
    transform.Translate(move);
    move.x += (acceleration * Time.fixedDeltaTime);
}

1 个答案:

答案 0 :(得分:0)

public void Update()
{
    if (hasAcceleration)
    {
         // AddForce(Vector2 force, ForceMode2D mode = ForceMode2D.Force);
         // 
         rigidbody2D.AddForce(force, ForceMode2D.Force);
    }
}
  • 或您自己
public void AddForce(Vector3 force)
{
    Vector3 f = force;
    f = f / mass;
    acceleration += f;
}

public void AddForce(Vector2 force)
{
    AddForce(new Vector3(force.x, force.y, 0.0f));
}

public void UpdateMovement(float deltaTime)
{
    velocity += acceleration;
    acceleration *= 0;

    movement = velocity * deltaTime;

    transform.localPosition += movement;
}