Задача: Формат 3д, нпс должен замечать игрока и реагировать. на утубе увидел

решения через raycast , но посмотрел видео 6 лет давности и относительно новые, ничего особо не изменилось. я так понимаю это самое оптимальное сейчас?
отправляем луч от нпс, если он сталкивается с чем то, чекаем что это за объект и если он имеет слой игрок, то значит это игрок

5 ответов

7 просмотров
Andrey-Valkevich Автор вопроса

https://youtu.be/rQG9aUWarwE https://youtu.be/j1-OyLo77ss

да. Но это не оптимально. рейкасты вещь тяжелая. Если юнитов много то это беда. Я бы использовал 1 рейкат. от 1 . юнита, который всегда направлен на игрока. Если появляется прямая видимость. Проходим по условию реагирования, например в области 90 градусов перед лицом моба, и только тогда реагируем. Кидать кучу рейкастов вперед перед мобов, не продуктивно.

Andrey-Valkevich Автор вопроса
Сергей (F L )
да. Но это не оптимально. рейкасты вещь тяжелая. Е...

т.е. в старте или авейке запускаем рекаст на игрока , т.е. нпс как бы ВСЕГДА видит игрока. потом делаем функцию, если игрок в определенном радиусе, перед нпс, его ничего не заслоняет - нпс реагирует. функцию вызываем в апдейте

Andrey Valkevich
т.е. в старте или авейке запускаем рекаст на игрок...

Рейкаст в авейке запускать не надо. Надо дать ссылку на игрока. Рейкаст авейком мало того, что плохо пахнет и создат лаги. Так еще и не имеет 100% гарантии что он отработает. Так как мы можем переместить игрока между выполнением кода или броском рейкаста. Но суть да такая. в UPDATE лучше не пихать лучше в FIX либо через корутинку. 5 раз в секунду например или 2-10 как хочешь. каждый кадр это жирно.

Andrey-Valkevich Автор вопроса

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

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

Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
Чет мне ссыкотно опять Rainlab.User в проект ставить. Кто знает, опять наотъебись все сделали или после обнов пользоваться можно?
Black Cat
10
ребят, привет есть ли возможность мигрировать Policies + Auth Methods из нескольких Vault в один? пытаюсь сократить Vault кластера, немного не удобно что для каждой тестовой ...
azadevlab
2
Всем привет. Кто подскажет, как сделать авто обновление стороннего модуля при запуске контейнера. Мб есть команда при запуске контенера или в докер файле нужно приписать настр...
Trum_t Malyuzhenets
1
коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
это группа токсиков или тех кто помогает?
Ибрагим
9
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
Загрузил на свой сервер, теперь обычные прямые ссылки без query параметров и возможных ограничений, всё равно та же ошибка. Неужели скачивать из VK и перезаливать в TG кажд...
Alexey S
2
Карта сайта