Проблема с Quaternion в unity

252
18 марта 2022, 09:00

Делаю 2d шутер, пистолет поворачивается в зависимости от курсора, если нажимаем лкм, то вылетает создаются пуля,которая принимает аргументы: start.position и pistol.transform.rotation

Instantiate(bollet, StartPos.position, pistol.transform.rotation);

Решил сделать разброс, путём прибавления к transform.rotation числа четыре, но напрямую к transform.rotation я прибавить ничего не могу. Решил проблему так:

  Quaternion rot = Quaternion.Euler(pistol.transform.rotation.x, pistol.transform.rotation.y, pistol.transform.rotation.z+4);
Instantiate(bollet, StartPos.position, rot);

Но в таком случае пуля летит вправо + 4. Когда вывожу pistol.transform.rotation.z, то выводится число, которое не достигает одного и минус одного, то есть -0.9835,08953 и тд. (Обычно именно в таких значениях). Что делать?

Answer 1

Я не совсем понял, что вы хотите сделать, но ошибку с градусами объяснить могу.

transform.rotation.x (/y/z)- возвращает поворот не в градусах, а в границе [-1; 1]

Функция Quaternion.Euler() принимает именно значения в градусах. Что бы получить значение поворота в градусах нужно написать transform.rotation.eulerAngles.x (/y/z)

READ ALSO
Регулярное выражение для поиска числа в строке

Регулярное выражение для поиска числа в строке

Пытаюсь постигнуть регулярки - нужна помощьЕсть такая строка:

83
Сохранение excel файла

Сохранение excel файла

Не могу понять как правильно сохранить файл, чтобы в нем остались изменения

101
Как вручную создать файл gmdb для работы с Gmap.NET?

Как вручную создать файл gmdb для работы с Gmap.NET?

Как создать файл cachegmdb с данными всей страны, с разными уровнями масштабирования

194
Как биндить Generic VM?

Как биндить Generic VM?

Доброго времени сутокЕсть interface базовой ViewModel:

127