В 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 из которой можно получить нормаль в точке столкновения.
Продвижение своими сайтами как стратегия роста и независимости