Как дублировать положение объекта?
У меня есть 2 объекта один статичный другой подвижный. Нужно чтобы статичный объект повторял положение подвижного. (Без задержек) Как это зделать? C# Unity3d
Ответы (2 шт):
кода не нужно. Должна быть иерархия:
Пустой обьект
- Подобьект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(...)
Если у вас остались еще вопросы по поводу иерархии, советую добавить скриншот иерархии в вопрос.