Войти
UnityФорумФизика

Как задать родительскому объекту позицию его ребенка?

#0
1:56, 23 ноя 2022

Добрый день!

Есть контроллер персонажа, внутри него аниматор и добавлен ragdoll.
Когда активируется ragdoll то его тело начинает падать само и позиция родительского объекта и тела начинает отличаться. В итоге после падения например с высоты, сами кости с телом лежат далеко от объекта контроллера персонажа(где rigidbody).
И тут вопрос, как обновлять позицию родительского объекта, чтобы она следовала за своим скелетом?
Если напрямую выставлять ему глобальную позицию ребенка, то все куда то улетает.

#1
(Правка: 2:08) 2:07, 23 ноя 2022

Думаю есть правильный вариант для такой ситуации, но я его не знаю (подождем знающих). Пока могу предложить вариант когда мы изначально знаем что кукла внутри отличается по координатам допустим на вектор (0, 0.25, 0). От балды написал.
Тогда при активации риджит бади смотрим у ребенка его transform.localPosition, отнимаем известный ранее вектор (или возможно складываем?) и добавляем это к координатам родителя, а потом сразу же делаем локальные координаты ребенка равные тому вектору (или нулю если изначально в нуле и был внутри родителя).
Ну и делаем это соответственно де то в апдейте или типа того. Но опять же звучит как костыль.

#2
11:43, 23 ноя 2022

manking
- отлинковываем child от root
- меняем позицию для root
- заново линкуем child к root

#3
14:15, 23 ноя 2022

Тут лучше задать вопрос: "Зачем это нужно?"

Чтобы найти наиболее простое решение, соответсвующее поставленной задаче.

#4
20:04, 23 ноя 2022

Нужно для коррекции позиции контроллера персонажа в состоянии ragdoll.
Он улетает от родителя.
Насколько понял правильней вообще ragdoll отдельно создавать, а не прямо в основном персонаже?
То есть есть основной аниматор, а есть кости с колладерами, которые под действием физики перемещаются. А внешний вид аниматора уже затем выставляет свои позиции в позиции соответствующей кости?

UnityФорумФизика