2016-06-18 4 views
0

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

+2

Просто используйте внутренний физический движок. – AgentFire

+0

Вы имеете в виду два движущихся шара? или шарик + общий объект –

+0

Я думаю, что вы не используете физику и bounciness – matiaslauriti

ответ

0

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

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

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

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

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

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

Удача

Смежные вопросы