Среда, 18 Декабря 2024, 23:41

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Направление траектории пули
serezhaДата: Среда, 27 Января 2021, 17:20 | Сообщение # 1
был не раз
Сейчас нет на сайте
При нажатии кнопки выстрела создается префаб пули на сцене, затем добавляется сила которая толкает ее вперед (forward) с заданной скоростью. Как с помощью кода, повернуть пулю немного правее...градусов на 30, чтобы пуля также летела прямо от игрока, но при этом отклонилась немного в право? Или как сделать так, чтобы можно было с помощью числа в коде, регулировать отклонение пули вправо или влево по оси X в случае необходимости. Пересмотрел кучу уроков в интернете, но так и не удалось решить эту задачу. blink

код:
bulletInstance.GetComponent<Rigidbody> ().AddForce (GunPoint.transform.forward + cam.transform.forward * Speed);

bulletInstance - переменная в которой хранится префаб пули
GunPoint - точка спавна пули
cam - камера игрока, который делает выстрел
Speed - скорость пули со значением 5000
GameDev2Дата: Среда, 27 Января 2021, 18:33 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Поправка на ветер для пули снайпера? 3Д пространство?
serezhaДата: Среда, 27 Января 2021, 19:01 | Сообщение # 3
был не раз
Сейчас нет на сайте
Да, пространство 3Д. Поправка на ветер для пули снайпера - Вы угадали :) это будет позже в игре, но сейчас я делаю пока что без ветра. Задача сводится к тому, как можно отклонять траекторию пули, просто изменяя значения в коде. Думаю вроде что то еще нужно добавить, дописать где то рядом с "forward", а вот что именно так и не разобрался
RangerДата: Пятница, 29 Января 2021, 04:05 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Цитата serezha ()
bulletInstance.GetComponent<Rigidbody> ().AddForce (GunPoint.transform.forward + cam.transform.forward * Speed);

bulletInstance.GetComponent<Rigidbody>().velocity += Vector3.right * windSpeed;


drcrackДата: Пятница, 29 Января 2021, 09:27 | Сообщение # 5
старожил
Сейчас нет на сайте
По-хорошему ветер надо добавлять каждый FixedUpdate, а не один раз при запуске, он же постоянно на нее действует

Сообщение отредактировал drcrack - Пятница, 29 Января 2021, 09:27
serezhaДата: Пятница, 29 Января 2021, 12:40 | Сообщение # 6
был не раз
Сейчас нет на сайте
Цитата Ranger ()
bulletInstance.GetComponent<Rigidbody>().velocity += Vector3.right * windSpeed;

Ranger, что-то код не поворачивает пулю на 30 градусов. right - поворачивает пулю на 90 градусов, а это не то что нужно.

Цитата drcrack ()
По-хорошему ветер надо добавлять каждый FixedUpdate, а не один раз при запуске, он же постоянно на нее действует

drcrack, это тут при чем??? С чего Вы вдруг решили что я не знаю как выполняются команды в FixedUpdate и других? Вы хоть прочитали мой вопрос в теме или просто не туда ответили?! :)
drcrackДата: Пятница, 29 Января 2021, 12:55 | Сообщение # 7
старожил
Сейчас нет на сайте
Я отвечал на последний пост

Цитата
С чего Вы вдруг решили что я не знаю как выполняются команды в FixedUpdate и других?

С того что ты не можешь написать 1 строчку кода которая решает твою проблему? :D

Цитата
right - поворачивает пулю на 90 градусов, а это не то что нужно.

вектор тут просто задает направление, а сила смещения определяется с помощью windSpeed
serezhaДата: Пятница, 29 Января 2021, 13:36 | Сообщение # 8
был не раз
Сейчас нет на сайте
Цитата drcrack ()
С того что ты не можешь написать 1 строчку кода которая решает твою проблему?

ну это точно не говорит о человеке, что он типа не знает куда команды вставлять! :D

С вектором направления это все понятно, но вот когда менял значение в windSpeed, как говорите что она смещает силой пулю. Почему то она меняет направление только в противоположные стороны или только опять под прямым углом...пытался делать чтобы пуля летела под углом 30 градусов и 15 градусов, но не получается, возможно я действительно что то упустил...
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг