Скорость и направление объекта после столкновения мяча с мячом

Я пытаюсь реально снизить скорость мяча, а также, возможно, изменить его направление, если это необходимо. Я понятия не имел, как посчитать влияние угла столкновения на скорость и под каким углом мяч должен изменить направление. Я просто хочу узнать, что стоит за этим обнаружением столкновений, но если у кого-то есть готовый код для Unity C#, это даже лучше. Я сделал это потрясающее изображение, чтобы продемонстрировать свой вопрос.

Разные столкновения по-разному влияют на скорость и направление


person Jonathan    schedule 18.06.2016    source источник
comment
Просто используйте внутренний физический движок.   -  person AgentFire    schedule 18.06.2016
comment
ты имеешь в виду два движущихся шара? или мяч + общий объект   -  person    schedule 19.06.2016
comment
Я думаю, что вы не используете физику и упругость   -  person matiaslauriti    schedule 19.06.2016


Ответы (1)


Кажется, вы не знаете, что Unity содержит встроенный физический движок. Чтобы использовать его, просто добавьте к своим объектам компонент Rigidbody и компонент Collider (BoxCollider, SphereCollider, ...).

В коде вы можете придать своим объектам скорость, ускорение и т. д., используя твердое тело. Пример:

gameobject.rigidbody.velocity = new Vector3(1f, 0f, 0f);

Документ содержит все функции, которые вы можете вызывать для твердых тел:

https://docs.unity3d.com/ScriptReference/Rigidbody.html

Если два объекта с твердыми телами и коллайдерами касаются друг друга, столкновение вычисляется автоматически. Обратите внимание, что новое направление объектов вычисляется с использованием формы объекта коллайдера, поэтому вам нужно использовать коллайдер, который максимально похож на ваш объект.

Удачи

person Basile Perrenoud    schedule 20.06.2016