Ручная обработка столкновений unity3d

259
22 августа 2017, 10:48

В unity есть стандартная физика - на основе компонентов rigidbody и collider'ов.
При автоматическом расчете скорость объектов меняется. А мне нужно чтобы модуль скорости был одним и тем же, а менялось только направление (в зависимости от условий).
Как вручную менять направление после столкновения?

private void OnCollisionEnter2D(Collision2D collision)
{
    fallVector = GetRigidbody.velocity.normalized;
    fallNormalVector = collision.contacts[0].normal;
    var reflectedVelocity = Vector3.Reflect(fallVector, fallNormalVector).normalized;
    GetRigidbody.velocity = reflectedVelocity * 3;        
}

При подобной обработке срабатывает и стандартное изменение направления, и то что написано вручную, в итоге - неадекватно работает.

Просьба не предлагать использовать триггеры вместо коллайдеров, или объяснить тогда, как рассчитать траекторию отражения от триггера т.к. в событии OnTriggerEnter2D() нет переменной Collision2D из которой можно получить нормаль в точке столкновения.

READ ALSO
Как настроить параметры Unity объекта через xml SharedPreference в Android?

Как настроить параметры Unity объекта через xml SharedPreference в Android?

Добрый деньПомогите понять как реализовать такую вещь, в общем есть задача, при запуске андроид приложения у меня сначала должна запускаться...

275
Курсор на консоли

Курсор на консоли

Здравствуйте, как сделать обработку нажатия на определенный текст в консоли C#

289
Парсинг JSON строки

Парсинг JSON строки

Есть json и я его обрабатываю

383