LittleBob
@LittleBob
Android Developer

Как сделать инерционное движение в Unity2D?

В Rigidbody2D gravity на 0, масса 1. Когда использую velocity, объект просто двигается, когда использую AddForce объект почему то приобретает бесконечное ускорение и движение. Мне необходимо, чтобы такого не происходило и инерция завершалась через какое-то управляемое мною расстояние после отпускания клавиши.
Как такое сделать?
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
ShockWave2048
@ShockWave2048
imposter
Нужен импульс, простой AddForce включает непрерывную силу, поэтому улетает.
Примерно так:
public float thrust = 1.0f;
public Rigidbody rb;

void Start()
{
        rb = GetComponent<Rigidbody>();
        rb.AddForce(0, 0, thrust, ForceMode.Impulse);
        rb.drag = 0.1f; // Убеждаемся что тело будет постепенно останавливаться.
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@WaterSmith
Android-разработчик. Java, Kotlin
Физику надо знать хотя-бы в общих чертах.
При гравитации 0, ничего никуда падать не должно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы