Ребятки, делаю систему прицеливания как во втором/третьем ведьмаке. То есть

куда ты направляешь свое движение / левый стик геймпада, на том и будет сфокусирован игрок. Написал небольшой метод, который делает Box Trace во время того, как игрок использует Input Axis MoveForward / MoveRight. Но вот сейчас немного задумался. Что дешевле? Box Trace во время движения, или простой компонент Box Collision, который бы чекал таргеты на OnComponentBeginOverlap и OnComponentEndOverlap эвентах.

10 ответов

19 просмотров

сделай оба и поставь счетчик

в данном случае ни то и ни другое, скалярное произведение векторов

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

А как при помощи скалярного произведения векторов я смогу к примеру взять врага, кастануть на него и вызвать у него метод? И скалярное произведение насколько я понимаю между вектором направления Character-a и input вектором?

Sarmat
А как при помощи скалярного произведения векторов ...

с помощью другой простой математики определяешь врагов в радиусе, среди них выбираешь того, на которого смотришь (т.е. куда стик наведён). Да, между инпутом (направление стика) и вектором от персонажа (или камеры, тут сам смотри) к противнику

Sarmat- Автор вопроса
Aleksei DTG
с помощью другой простой математики определяешь вр...

Понял спасибо. Если первое для меня еще изи, то вот со вторым? Не подскажешь мб формулы, теоремы, метод может есть какой-то в FMath библиотеке, чтобы узнать врага в радиусе?

Sarmat
Понял спасибо. Если первое для меня еще изи, то во...

ну камон, попадание точки в окружность

Sarmat
Понял спасибо. Если первое для меня еще изи, то во...

Посчитай расстояние между двумя точками, оно должно быть меньше радиуса круга

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

У меня с геометрией все не так хорошо как хотелось бы на бумаге, а тут еще и анрил. Ладно, буду гуглить "попадание точки в окружность", спасибо! То есть сейчас алгоритм выглядит примерно так: 1. Я вычисляю скалярное произведение между векторами камеры, или персонажа и инпута игрока. 2. Я делаю SphereTrace, чтобы найти всех врагов около меня. Дальше проверяю попадают ли эти точки в окружность. Если да, то среди них выбираю подходящую для нанесения удара. Все верно?

Sarmat
У меня с геометрией все не так хорошо как хотелось...

а... не совсем, забыл, что для этого ещё надо список потенциальных врагов недалеко от тебя найти, это несколько усложняет задачу В общем определять попадание противника в радиус смысла тогда нет, делай сферический оверлап через UKismetSystemLibrary::SphereOverlapComponents при изменении направления

Sarmat- Автор вопроса
Aleksei DTG
а... не совсем, забыл, что для этого ещё надо спис...

При изменении направления инпута игрока? Потом сохраняю этот списочек и уже нахожу просто ближайшего игрока в определенном направлении. Верно? (сорри, если запариваю)

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

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

Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Всем привет. Запускаю snmp_server вызовом snmp:start() и получаю вот это: {bad_return, {{snmp_app,start,[normal,[]]}, {'EXIT', {{badmatch, {error, {{shutdown, {failed_to_sta...
Δημήτηρ
9
Кто хочет поиграться в легкий взлом специально уязвимого приложения? :) Ваше задани - вы студент группы 416 - оценку в 100 баллов и найти 10 флагов (текстовых) формата Step0...
Andrii Kurdiumov
4
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
После переезда на эликсирные доки я не могу найти в интернете актуальную документацию. Раньше вбивал в гугл erlang man ets и первым результатом была свежая дока. Теперь там ст...
Danil Zagoskin
6
<div class="report-widget"> <h3 style="margin-bottom:10px;"> <?= e(__($this->property('title'))) ?> </h3> <button type="submit" data-request-flash ...
Vladimir 
2
помню, предыдущий ноут (последний с тачбаром (А ПОМНИТЕ?) и эскейпом) высаживался почти в ноль за полдня работы, его проще было держать на проводке всегда. на м1 максе я мог п...
Kirill Titov
2
Точно проблема в твиге?
Vladimir 
5
Карта сайта