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