Направление траектории пули
|
|
serezha | Дата: Среда, 27 Января 2021, 17:20 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| При нажатии кнопки выстрела создается префаб пули на сцене, затем добавляется сила которая толкает ее вперед (forward) с заданной скоростью. Как с помощью кода, повернуть пулю немного правее...градусов на 30, чтобы пуля также летела прямо от игрока, но при этом отклонилась немного в право? Или как сделать так, чтобы можно было с помощью числа в коде, регулировать отклонение пули вправо или влево по оси X в случае необходимости. Пересмотрел кучу уроков в интернете, но так и не удалось решить эту задачу.
код: 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 строчку кода которая решает твою проблему?
Цитата right - поворачивает пулю на 90 градусов, а это не то что нужно. вектор тут просто задает направление, а сила смещения определяется с помощью windSpeed
|
|
| |
serezha | Дата: Пятница, 29 Января 2021, 13:36 | Сообщение # 8 |
был не раз
Сейчас нет на сайте
| Цитата drcrack ( ) С того что ты не можешь написать 1 строчку кода которая решает твою проблему? ну это точно не говорит о человеке, что он типа не знает куда команды вставлять! :D
С вектором направления это все понятно, но вот когда менял значение в windSpeed, как говорите что она смещает силой пулю. Почему то она меняет направление только в противоположные стороны или только опять под прямым углом...пытался делать чтобы пуля летела под углом 30 градусов и 15 градусов, но не получается, возможно я действительно что то упустил...
|
|
| |