@xcv0

Как обнулить силу AddForce Unity 3D?

Доброго времени суток. Есть скрипт:
void Update () 
    {
        rigid.AddForce(new Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"))*_force);
    }

Как в этих строчках обнулить силу AddForce?
private void OnTriggerEnter(Collider other)
    {
        if(other.tag == "kill")
        {
            // Destroy(gameObject);
            transform.position = _spawnPoint1.transform.position;
            // ТУТ КОД КАК ОБНУЛИТЬ ЧТОБЫ ШАР НЕ КАТИЛСЯ
        }
    }
  • Вопрос задан
  • 504 просмотра
Решения вопроса 1
@xcv0 Автор вопроса
По итогу решение было не совсем правильно но нашёл выход:
rigid.isKinematic = true;
rigid.isKinematic = false;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@kokapuk
обнуляй velocity, по идее addForce как раз таки и работает с velocity
Ответ написан
Griboks
@Griboks Куратор тега C#
Вы добавляете силу, но в API отсутствует метод вычитания силы. Это происходит потому, что в физике принято трактовать вычитание как добавление инвертированного вектора, т. е. rigid.AddForce(-lastForce)..

Но если вас интересует остановка, а не вопрос в заголовке, то проще всего обнулить скорость rigid.velocity = Vector3.zero.
Ответ написан
Ваш ответ на вопрос

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

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