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

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

13 ответов

20 просмотров

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
как всегда прекрасный пример, спасибо. но почему в...

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

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
кто-нибудь уже пробовал это?
Lencore
4
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
❓ Подскажите как сделать в группе телеги функцию (кнопку) пересылки сообщения где есть нарушение правил? Бот к каждому сообщению (по определенным ключам) добавляет снизу кнопк...
Alexander
4
Карта сайта