возможно ли в unity изменить начало координат объекта? т.е. перенести его, и чтобы новое положение было нулевым по оси X, Z, Y?

возможно ли в unity изменить начало координат объекта? т.е. перенести его, и чтобы новое положение было нулевым по оси X, Z, Y?


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

Автор решения: Даниил Ганин

Попробуйте создать пустой объект, перенесите в него нужные объекты, переместите пустышку в нужную позицию(XYZ) и изменяйте позицию своих объектов через transform.localPosition

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

Это называется Pivot Point.

Юнити не поддерживает изменение Pivot Point из коробки. И вряд ли когда-нибудь будет.

Решение правильно подсказал Даниил Ганин в своем ответе - необходимо создать пустой обьект и внутрь него положить тот обьект который тебе необходимо. Пустой обьет в даном случае играет роль самого PivotPoint.

Для удобности советую сделать наоборот - сначала пустышку внутрь твоего обьекта, сместить куда необходимо, а потом в иерархии поменять местами -- обьект поместить внутрь Pivot-a.


С вопросами для чего это используется... Вообще пивот очень широко используется в 3д моделировании, наверное, нету ни одного 3д-редактора который бы не поддерживал изменение пивота.

Это используется, например, что бы дверь открывалась сбоку где находятся петли, а не вращалась по центру оси.

Или, например, если нужно поезд привязать к рельсам - лучше будет если пивот вагона будет находится на уровне колес с (например) левой стороны, а сплайн по которому поезд движется - будет находится на самой рельсе. Это вместо кучи костылей. И тогда мы просто реализуем передвижение по рельсам двигая обьект по сплайну (в даном случае пивот)

Иной пример использования: https://ru.stackoverflow.com/a/1205667/186752

Вобщем, вопрос очень полезен и использование пивота играет очень важную роль в геймдеве.

→ Ссылка