как перемещать объект на основе оси другого объекта (например, плоскости) с использованием твердого тела - Unity3d

Я ищу любую идею, как перемещать GameObject на основе оси другого объекта. Мне сложно это перевести, поэтому я использую "настоящие" примеры:

  1. У меня есть стол и я хочу переместить на него тарелку. Это конечно, я могу двигать его только в двух направлениях.

  2. У меня есть пол, и я хочу двигать по нему мяч. Повторяю, у меня есть только два направления для этого.

Я знаю, как перемещать объект в направлении мыши, но это всегда оси X, Y и Z. Я использую Rigidbody.AddForce, поэтому мне нужно использовать глобальные/мировые координаты. Поэтому я не могу «просто не использовать» одно направление, потому что мой первый объект (стол, пол и т. д.) может двигаться, вращаться и т. д. Поэтому я думаю, что должен перемещать свой объект (тарелку, шар) на основе локальных координат первый объект. Но я совершенно не знаю, как найти направление/вектор? Я знаю, что это возможно по математике, но я чувствую беспорядок.

ДЕЙСТВИТЕЛЬНО ВАЖНО сделать это с помощью Rigidbody, а НЕ перевести (с помощью перевода это довольно легко для меня ;)).

Надеюсь, мой пост понятен, потому что мне трудно перевести эту проблему. Если что-то уточню - пишите.


РЕДАКТИРОВАТЬ: этот пост был помечен как дубликат, но я не вижу ответа на свой вопрос во втором посте. Я хочу перемещать свои объекты относительно другой поверхности, используя твердое тело, в предлагаемом посте об этом не говорится.


person Queen    schedule 12.12.2017    source источник
comment
Вы перемещаете Rigidbody с помощью Rigidbody.MovePosition. Я уверен, что вы могли бы найти это, если бы вы искали в Google, как перемещать твердое тело...   -  person Programmer    schedule 13.12.2017
comment
Я отредактировал свой пост с информацией, что это не проблема, КАК ПЕРЕЕХАТЬ. Проблема КАК ДВИЖАТЬСЯ НА ОСНОВЕ ДРУГИХ КООРДИНАТ ОБЪЕКТА.   -  person Queen    schedule 13.12.2017
comment
Дубликат показывает, как переместить Rigidbody в другое положение. Используйте это, чтобы переместить твердое тело в другое положение. Если это не работает, опубликуйте свой код. Без вашего кода никто не узнает, что вы делаете не так   -  person Programmer    schedule 13.12.2017
comment
@Programmer Я чувствую, что моя проблема достаточно понятна для вас, или что-то в моем мышлении не так. Итак, я попытаюсь объяснить это повторение. У меня есть первый объект, например. стена. У него есть локальные координаты и мировые координаты, конечно. Он не движется, но я не знаю его координат (поэтому его можно вращать и т. д.). Теперь у меня есть объект с твердым телом, и я хочу переместить его, как картину на стене (или что-то в этом роде). Это означает, что мой второй объект движется НА ПЛОСКОЙ ПОВЕРХНОСТИ первого объекта. Я делаю это по положению мыши и добавляю силу к положению мыши. Но таким образом у меня есть позиция в 3.   -  person Queen    schedule 13.12.2017
comment
размеры - XYZ. Так что он не приклеен к стене. Но я хочу перемещать его ТОЛЬКО по поверхности стены. Я действительно пытаюсь перевести это как можно точнее, но мой английский недостаточно хорош, чтобы сделать это лучше.   -  person Queen    schedule 13.12.2017