FireSource.Forward А как удобнее всего получить вектор чуть чуть повернутый на

рандомный угол ? + Vector3 (Random.Range... или есть запись покрасивее ?

13 ответов

8 просмотров

https://docs.unity3d.com/ScriptReference/Random-rotation.html И умножаешь на вектор

ivan- Автор вопроса
Alexander Pluzhnikov
https://docs.unity3d.com/ScriptReference/Random-ro...

ну это ж совсем рандом. а мне в пределах диапазона надо )

ivan
ну это ж совсем рандом. а мне в пределах диапазона...

так как сумма двух векторов дает нам новый вектор - ты можешь просто взять рандом циркл в плоскости перпендикулярной твоему вектору, сложить их и получишь "чуть-чуть" отклонившийся вектор (не забудь нормализовать

ivan- Автор вопроса
Danil Bog
так как сумма двух векторов дает нам новый вектор ...

Затуп не прошел ) скрипт стрельбы взял готовый и не могу понять как прикрутить туда рассеивание По идее это вот тут if (Physics.Raycast(fireSourcePosition, fireSource.forward , out RaycastHit hitInfo, maxQueryDistance)) { Пробовал вот так Vector3 randomSpread = new Vector3(0, 0, Random.Range(-1f, 1f)); if (Physics.Raycast(fireSourcePosition, fireSource.forward + randomSpread, out RaycastHit hitInfo, maxQueryDistance)) Но чет не то ) рассеивание нет. вообще не то кручу ?

ivan
Затуп не прошел ) скрипт стрельбы взял готовый и н...

на пастбин выложи. И да, это не так работает

ivan- Автор вопроса
ivan- Автор вопроса

тип того ) да

ivan
тип того ) да

у тебя есть собственный форвард, который ты используешь для направления. Кватернион ротейшена (1) даст тебе преобразование вектора, который генерит рандом на это направление. В результате ты получишь вектор перпендикулярный направлению форвард трансформа. Сложив эти вектора ты получишь новый вектор, за разброс будет отвечать длина этого второго вектора (2) . Нормализовав результат - получишь единичный вектор направления. В дебаге нужна длина для отрисовки вектора, поэтому я там вставил цифирь. У тебя в рейкасте есть длина, тебе это не нужно. Можешь анимировать спред (2) от зажатия, если хочешь чтоб разброс зависил от того, как долго ты не отпускаешь кнопку огня

ivan- Автор вопроса
Danil Bog
у тебя есть собственный форвард, который ты исполь...

как всегда прекрасный пример, спасибо. но почему в исходном скрипте оно не работает (все как летело в одну точку так и летит) ? spreadValue = 0.5f; var directionRnd = fireSource.forward + (fireSource.rotation * Random.insideUnitCircle) * spreadValue; if (Physics.Raycast(fireSourcePosition, directionRnd , out RaycastHit hitInfo, maxQueryDistance)) fireSource - это трансформ камеры по факту может я что-то простое упускаю и не там редактирую логику ?

ivan
как всегда прекрасный пример, спасибо. но почему в...

спред вэлью это длина вектора. Ты подбери для своих настроек какую надо. Мб 0.5f у тебя это очень мало, я не знаю. Вынеси в поле и покрути туда-сюда. Ну и отдельный вопрос - как ты узнал, что в точку летит?

ivan- Автор вопроса
Danil Bog
спред вэлью это длина вектора. Ты подбери для свои...

эффект висит на вылетающем снаряде (через N секунд он взрывается с дымком в воздухе) - в принципе в логике на силу наконец разобрался. там отдельный кусок логики на попадание в какую нибудь стену. без которого я могу обойтись. Вот так теперь работает. В который раз убеждаюсь что готовый код в котором я не соображаю не ускоряет разработку ))

ivan
как всегда прекрасный пример, спасибо. но почему в...

вот с рейкастом по чему-то, пожалуйста

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

Обсуждают сегодня

вопрос: кто как решает вопрос с динамической подгрузкой скриптов для отдельных страниц с включенным turbo router?
Sergei Toroptsev
25
Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
Друзья, за кем?
Magic
12
Это что теперь, любой бот сможет принимать платежи без ебли с юр лицами?
Lencore
8
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Не догоняю немного каким боком тут эппл Вот есть веб (мини) апп, который по факту веб сайт, просто в телеге веб вью и если там оплата, то нежно вот эти приседания?
e\\/gen
7
ого, спасибо Никит, ты как всегда кладезь нужной инфы! Сейчас пойду копаться, а мне релиз создать как и версию самого плагина? типа 1.0.8?
Alex Blaze
9
Всем привет. Кто-то может подсказать, как можно перевести значения Selection поля, если список значений в нем формируется динамически? Я изначально их получаю из selection дру...
Наталья Селезнева
6
речь про Индусов или мелкомягких?
Akcium Сергей
2
коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
Карта сайта