2013-09-03 1 views
3

Я создаю одну игру единственного пула. Я хочу получить направление мяча, чтобы показать пользователю, где мяч будет двигаться. Рассмотрим пример для примера.Как получить направление после того, как cueBall сталкивается с любым мячом в единстве3d?

Здесь А наш cueBall и B шаров на столе. Давайте рассмотрим, что когда пользователь нажимает мяч A в направлении «DIR 1», он попадает в мяч B в это время мяч A будет находиться в положении C согласно изображению.

Теперь я хочу знать, что есть точка

  1. Как найти позицию с.
  2. Что является точкой прикосновения B & C означает, какое место А будет сталкиваться с Б.
  3. В каком направлении мяч B будет двигаться после Collide А.

Я надеюсь, что этот вопрос понятен всем и обеспечить надлежащую детализацию для моей проблемы.

ответ

0

Предполагая, что вы используете Rigidbody на ваших шаров, вы можете использовать:

http://docs.unity3d.com/Documentation/ScriptReference/Rigidbody.SweepTest.html

вы будете использовать «dir1» в качестве параметра SweepTest функции.

После того, как он вернулся через «истинный» и подтвердил столкновение, вы могли бы использовать RaycastHit.distance и «dir1» вычислить положение «C»

С позиции «C», RaycastHit.point (позиция удара) , и положение «B», теперь вы можете рассчитать «DIR2».

-

Physics.Capsule литая и другой вариант>http://docs.unity3d.com/Documentation/ScriptReference/Physics.CapsuleCast.html

+0

SweepTest метод гораздо ближе к моему решению, но не excat один, для которого я ищу. –

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