Как дублировать положение объекта?

У меня есть 2 объекта один статичный другой подвижный. Нужно чтобы статичный объект повторял положение подвижного. (Без задержек) Как это зделать? C# Unity3d


Ответы (2 шт):

Автор решения: Andrew

кода не нужно. Должна быть иерархия:

Пустой обьект

  • Подобьект1 - обьект за которым повторять движение
  • Подобьект2 - повторяющий движение

если двигать пустой обьект - будут двигатся оба обьекта

если нужно поворачивать только Подобьект1 - поворачивай только его

→ Ссылка
Автор решения: Максим Фисман

Движение и вращение осуществляются из отдельного скрипта, типа PlayerMovement. Иерархия выглядит так:

  • Пустой объект (Компоненты: transform, PlayerMovement, BoxCollider, Rigidbody)
    • Голова игрока (Компоненты: графические, типа MeshFilter, MeshRenderer...)
    • Туловище игрока (Компоненты также графические)

В скрипте PlayerMovement при необходимости передвижения игрока вы двигаете ПУСТОЙ ОБЪЕКТ (под 1-й точкой). К нему вы можете обращаться через переменную типа GameObject, либо не обращаться вообще, так как скрипт висит на самом этом обхекте:

player.GetComponent<Rigidbody>().AddForce(...);
или
GetComponent<Rigidbody>().AddForce(...);

Для поворота головы вы обращаетесь к САМОЙ голове. Через опять же публичную переменную (или SerializeField), или через GetChild (хуже).

Head.transform.Rotate(...)
или
transform.GetChild(0).Rotate(...)

Если у вас остались еще вопросы по поводу иерархии, советую добавить скриншот иерархии в вопрос.

→ Ссылка