Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Unity3d Как переместить повёрнутый предмет из точки А в точку Б по определённой оси(Z)?

Егор Тимофеев Ученик (243), на голосовании 1 год назад
Попытался переместить камеру в проекте, использовал методы Vector3.Lerp, transform.Translate. Вводил всё верно, но из за того, что предмет повёрнут, его перемещает не только по оси Z, а по всем трём осям. Как быть? Какой метод использовать?
Голосование за лучший ответ
Евгений Корнев Мастер (1193) 1 год назад
В Unity для перемещения объекта вдоль определенной оси вы можете использовать преобразование.Переведите метод и передайте в направлении оси, вдоль которой вы хотите двигаться. Например, чтобы переместить объект вдоль оси Z, вы можете использовать следующий код:

 transform.Translate(Vector3.forward * Time.deltaTime); 
Это приведет к перемещению объекта вперед по оси Z на расстояние в единицах времени.deltaTime за кадр.

Если объект повернут, и вы хотите переместить его только вдоль оси Z, вам необходимо повернуть объект обратно в исходное положение, прежде чем перемещать его.

 Quaternion originalRotation = transform.rotation; 
transform.rotation = Quaternion.Euler(0, 0, 0);
transform.Translate(Vector3.forward * Time.deltaTime);
transform.rotation = originalRotation;
Это вернет объект к исходному вращению, переместит его вдоль оси Z, а затем вернет его к предыдущему вращению.

Другой способ - переместить объект вдоль оси мирового пространства, используя transform.position += Vector3.forward * Time.deltaTime; вместо transform.Перевести(Vector3.forward * Time.deltaTime);

В обоих случаях вам следует заменить Vector3.forward на направление, в котором вы хотите двигаться в мировом пространстве.
Егор ТимофеевУченик (243) 1 год назад
А переместить объект вдоль оси Z при этом никак его не вращая нельзя? Если я камеру буду в исходное положение переводить, то это очень сильно повлияет на картинку
Егор ТимофеевУченик (243) 1 год назад
Решил проблему, но через костыль. Я создал пустой объект, повесил на него код, который вы предложили, закрепил к пустому объекту камеру и заработало. Спасибо за помощь!
Если вы найдёте ответ на мой вопрос выше я буду крайне благодарен.
Похожие вопросы