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

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

13 ответов

24 просмотра

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
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта