@nano_e_t_4

Как работает поворот объекта?

Всем привет
Пытаюсь решить проблему поднятия игроком нового оружия (3д объекты импортирую из блендера). По задумке после поднятия ствол оружия должен смотреть в сторону мыши по оси y (3d игра с настройком камеры сверху, как в alien shooter). Но в итоге оружие смотрит немного не в ту сторону. Подскажите, как можно исправить. Код, в котором игрок поднимает оружие:

Vector3 mPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector3 pos = mPosition = player.transform.position;

        Quaternion initialRot = weapon.transform.localRotation;
        GameObject prevW = player.GetComponentInChildren<ShootingScript>().gameObject;
        GameObject w = Instantiate(weapon, prevW.transform.position, Quaternion.identity * Quaternion.Euler(0, pos.y, 0));
        w.transform.SetParent(prevW.gameObject.transform.parent);
        w.name = "Gun";
        w.AddComponent<ShootingScript>();
        Destroy(w.GetComponent<WeaponRotationScript>());
        Destroy(prevW);


вот здесь
Quaternion initialRot = weapon.transform.localRotation;


у объекта weapon (это обработанный префаб), нулевые координаты по позиции, повороту, единичный масштаб
p.s
да и в целом, пробую сделать так:
GameObject w = Instantiate(weapon, prevW.transform.position, Quaternion.identity * Quaternion.Euler(0, 0, 0));


но в итоге объект Gun повернут по какой либо из осей. Подскажите, кто знает, почему так может быть

p.s.s
пробовал просто применять функцию Quaternion.Euler(0, 0, 0), без перемножения, ситуация не меняется, вектор поворота все равно отличный от нуля
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы