Задать вопрос
@nano_e_t_4

Почему при создании объекта из префаба пропадает угол?

Всем привет
Создаю объект из префаба. В префабе у объекта есть угол (0, 90, 0 к примеру). После создания у объекта получается угол, отличный от префаба. Почему так и как поправить поведение (чтобы угол у префаба и угол у нового объекта совпадали)

WeaponItem currentWeapon = WeaponsInventary.instance.GetCurrentWeapon();
                GameObject shootingPoint = Utils.FindObjectByTag(gameObject, shootingPointTag);
                Debug.Log(currentWeapon.bullet.transform.rotation);
                Debug.Log(currentWeapon.bullet.transform.localRotation);
                GameObject bullet = Instantiate(currentWeapon.bullet,
                shootingPoint.transform.position, Quaternion.identity);
                bullet.transform.localRotation = Quaternion.Euler(currentWeapon.bullet.transform.localRotation.x,
                    currentWeapon.bullet.transform.localRotation.y, currentWeapon.bullet.transform.localRotation.z);

WeaponItem - это ScriptableObject к которому прикреплен префаб пули с выставленным углом
соответственно в дебаге координаты не совпадают с координатами в префабе
  • Вопрос задан
  • 342 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@I_GRIN_I
Ты же сам в 3 аргумент Instantiate передаешь пустой кватернион. Это и есть поворот.
Ответ написан
MrMureno
@MrMureno Куратор тега Unity
VR for all
bullet.transform.localEulerAngles =  new Vector3(currentWeapon.bullet.transform.localRotation.x,
                    currentWeapon.bullet.transform.localRotation.y, currentWeapon.bullet.transform.localRotation.z);


могу предложить только попробовать вот так вот присвоить. не через кватернион. а локальные эилеровы углы приравнять локальным эилеровым углам.
Кватернион вам просто поворот заданный возвращает в глобальном так сказать пространстве) а вы его в локальный поворот пихаете.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы