Как настроить ускорение в Unity2D? - PullRequest
0 голосов
/ 03 ноября 2019

Я делаю свою собственную "игру динозавров" (как в Chrome) в Unity. Мой динозавр, однако, ускоряется слишком быстро. Можете ли вы помочь мне найти проблему в моем коде?

Вот код:

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 голосов
/ 03 ноября 2019
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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...