возможно ли в unity изменить начало координат объекта? т.е. перенести его, и чтобы новое положение было нулевым по оси X, Z, Y?
возможно ли в unity изменить начало координат объекта? т.е. перенести его, и чтобы новое положение было нулевым по оси X, Z, Y?
Ответы (2 шт):
Попробуйте создать пустой объект, перенесите в него нужные объекты, переместите пустышку в нужную позицию(XYZ) и изменяйте позицию своих объектов через transform.localPosition
Это называется Pivot Point.
Юнити не поддерживает изменение Pivot Point из коробки. И вряд ли когда-нибудь будет.
Решение правильно подсказал Даниил Ганин в своем ответе - необходимо создать пустой обьект и внутрь него положить тот обьект который тебе необходимо. Пустой обьет в даном случае играет роль самого PivotPoint.
Для удобности советую сделать наоборот - сначала пустышку внутрь твоего обьекта, сместить куда необходимо, а потом в иерархии поменять местами -- обьект поместить внутрь Pivot-a.
С вопросами для чего это используется... Вообще пивот очень широко используется в 3д моделировании, наверное, нету ни одного 3д-редактора который бы не поддерживал изменение пивота.
Это используется, например, что бы дверь открывалась сбоку где находятся петли, а не вращалась по центру оси.
Или, например, если нужно поезд привязать к рельсам - лучше будет если пивот вагона будет находится на уровне колес с (например) левой стороны, а сплайн по которому поезд движется - будет находится на самой рельсе. Это вместо кучи костылей. И тогда мы просто реализуем передвижение по рельсам двигая обьект по сплайну (в даном случае пивот)
Иной пример использования: https://ru.stackoverflow.com/a/1205667/186752
Вобщем, вопрос очень полезен и использование пивота играет очень важную роль в геймдеве.