Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 28.08.2022
Сообщений: 15
1

Разброс у оружия

09.09.2022, 15:22. Показов 1693. Ответов 7

Author24 — интернет-сервис помощи студентам
Здравствуйте. Делаю 2д игру с видом сверху. Недавно решил сделать так, чтобы у оружия был небольшой разброс, и пули откланялись на указанное количество градусов от поворота персонажа.
C#
1
2
3
4
5
6
7
8
9
10
11
12
void Shoot()
    {
        if (ammo <= 0)
        {
            EndShoot();
            return;
        }
        int rnd = Random.Range(-range, range);
        Instantiate(bullet, attackSpawn.transform.position, gameObject.transform.rotation);   
        ammo -= 1;
        AmmoDisplayUpdate();
    }
Я пробовал использовать
C#
1
Instantiate(bullet, attackSpawn.transform.position, Quaternion.Euler(0, 0, transform.rotation.z + rnd(разброс)));
, пули действительно откланялись, но летели только вверх, т.е. если персонаж повернётся в другую сторону, то пули всё равно будут лететь вверх. Можете, пожалуйста, подсказать правильную реализацию разброс у оружия?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2022, 15:22
Ответы с готовыми решениями:

Задать разброс
Здравствуйте! Мне нужно задать в формуле Pk для переменной Hk_find разброс плюс-минус 0.01, как это...

Разброс токов
Помогите найти напряжение, с помощью разброса токов

Разброс цен на Galaxy S9
Здравствуйте форумчане, хочу взять s9, смотрю цены на яндекс маркете, самая низкая цена 42к в екб,...

Разброс температуры ядер
Заменил кулер, разброс между самым холодным и самым горячим 10 градусов. Раньше вроде как такого...

Тест. Варианты в разброс
Здравствуйте Программисты! у меня такая проблема. У меня есть тест, мне нужно было добавить в нём...

7
321 / 251 / 81
Регистрация: 07.05.2017
Сообщений: 1,846
09.09.2022, 18:27 2
z не твое в твоем случае. у тебя 2D игра.. рандом нужен по x и y.
0
0 / 0 / 0
Регистрация: 28.08.2022
Сообщений: 15
09.09.2022, 20:33  [ТС] 3
Я пробовал по x и y, но проблема с тем, что пуля летит только вверх осталась
0
321 / 251 / 81
Регистрация: 07.05.2017
Сообщений: 1,846
09.09.2022, 20:50 4
не известно какие значения у тебя в rnd. а так же метод EndShoot(); тайна покрытая мраком
0
Сын моей мамы
206 / 140 / 66
Регистрация: 09.05.2020
Сообщений: 733
09.09.2022, 20:52 5
Покажи весь свой код и скажи чему равен range, не единице случайно ли?Если да, то попробуй использовать float
0
891 / 161 / 84
Регистрация: 30.07.2022
Сообщений: 1,386
Записей в блоге: 4
09.09.2022, 22:47 6
ITSasiska, Доброго времени!
У вас поворот пули задается как у корневого объекта, а надо поворачивать как attackSpawn.
Попробуйте поменять
C#
1
Instantiate(bullet, attackSpawn.transform.position, Quaternion.Euler(0, 0, attackSpawn.transform.rotation.z + rnd(разброс)));
должно сработать.
0
0 / 0 / 0
Регистрация: 28.08.2022
Сообщений: 15
10.09.2022, 14:48  [ТС] 7
Цитата Сообщение от devillived Посмотреть сообщение
ITSasiska, Доброго времени!
У вас поворот пули задается как у корневого объекта, а надо поворачивать как attackSpawn.
Попробуйте поменять
C#
1
Instantiate(bullet, attackSpawn.transform.position, Quaternion.Euler(0, 0, attackSpawn.transform.rotation.z + rnd(разброс)));
должно сработать.
Спасибо, действительно помогло
0
2636 / 1564 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
10.09.2022, 15:02 8
Лучший ответ Сообщение было отмечено ITSasiska как решение

Решение

ITSasiska, devillived, Не забывайте, что свойство transform.rotation возвращает кватернион, а не ожидаемые углы. Поэтому нужно скорее всего так
C#
1
2
3
4
Vector3 rotation = transform.eulerAngles;
rotation.z += Random.Range(-20, 20);
 
Instantiate(BulletPrefab, transform.position, Quaternion.Euler(rotation));
0
10.09.2022, 15:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2022, 15:02
Помогаю со студенческими работами здесь

Загрузка и разброс по мемо
Привет друзья. Помогите с задачей. На форме есть 5 компонентов мемо. Через инди, загружается...

Разброс выстрелов для турели
Здравствуйте ! Есть скрипт для турели, все работает отлично, но нужно добавить разброс у пушки!...

Почему такой разброс цен ?
Хочу зарегестрировать домен в зоне net. У одного хостера (RU-CENTER) он стоит 620 рублей. У...

Почему такой разброс цен?
Может кто-нибудь объяснить почему такой разброс цен?...

Разброс сроков гарантии на комплектующие
На одну оперативку гарантия 3 года, на другую — 10 лет. На одни HDD гарантия 2 года, на другие — 5...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru