Почему я получаю неправильный вектор при попытке найти HingeJoint2D.anchor в мировом пространстве? - PullRequest
0 голосов
/ 14 октября 2018

В сцене у меня есть длинная цепочка детей, которые связаны через шарнир с их родителями.Для моего кода мне нужно положение якорей шарниров в мировом пространстве, поэтому я использую:

public Vector2 hingeVector => hinge.anchor + (Vector2)gameObject.transform.position;

Для первого шарнира этот код дает правильное положение.Но для второго шарнира это происходит:

anchor position I get (red) vs actual anchor (blue)

Красная точка - это вектор, который я получаю, синяя точка - это фактическая позиция.Как видите, это небольшое, но все еще проблематичное различие.

Можно ли как-нибудь это исправить?Я не мог найти ничего подобного в Интернете.

1 Ответ

0 голосов
/ 14 октября 2018

Вам необходимо добавить вращение объекта

Значения привязки выровнены по оси и не подвержены вращению, но для вычисления точки привязки в мировом пространстве, знаятрансформировать свою позицию, вам нужно повернуть значение точек якоря при вращении объекта тогда добавить его в положение:

1008 *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...