Полезное

Мы Вконтакте

Discord канал

#
Пред.
12
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 90
Всем привет. Помогите пожалуйста с решением данной ситуации: есть турель и цель, мне нужно узнать, смотрит ли турель в данный момент на цель. Разброс обзора к примеру как у обычной камеры.
Аватара пользователя
Пользователь
Сообщения: 4069
1. запустить лайнтрэй от условного центра твоей турели по форвард вектору, можешь использовать arrow компонент для этого
или
2. Добавить коллизию нужной формы
Аватара пользователя
Пользователь
Сообщения: 60
Prytaleks писал(а):
1. запустить лайнтрэй от условного центра твоей турели по форвард вектору, можешь использовать arrow компонент для этого
или
2. Добавить коллизию нужной формы

Что ты со своими стрингами и трейсами с булевой логикой суешься постоянно?! Изучи уже что-то новенькое. Оскомину набил уже...
Ты понимаешь разнице между СМОТРИТ и ВИДИТ?
Чел хочет узнать СМОТРИТ ли. Это нужно для того чтобы определиться с началом стрельбы..

По сабжу - нужно узнать угол между векторами: куда торрель смотрит и где относительно ее игрок.
Аватара пользователя
Пользователь
Сообщения: 2319
...
нужно 3 воодных вектора
положение тюрели V1
положение цели V2
и напрвление тюрели нормализованный dir
if ( acos(dotproduct(normalize(v2-v1),dir)) > maxAngle /*максимальный угол обнаружения*/)
{}
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
ХеруВам писал(а):
Что ты со своими стрингами и трейсами с булевой логикой суешься постоянно?

это лишь вариант, с помощью которых можно решить задачу без знаний триганометрии как у Снэйка например. Понимаю разницу, и между смотрит, и между видит, и есть ли между ними препятствия, а еще турель может быть какой угодно и гэймплэй такойже.
Аватара пользователя
Пользователь
Сообщения: 2319
кстати да - препятствия - а вот если угол меньше максимального угла обнаружения тогда уже трейсим...
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
Prytaleks , а вот коллизии тут 300 лет не нужны... это не просто костыль, это костылище! такие советы ужасны...
коллизи - это целый комплекс "бесконечных математических вычислений"(на самом деле конечных но математических выражений и задействованных классов просто уйма)
нагуглить как померять угол между двумя веторами - любой нубас может. и математики там понт, эти два способа просто несоизмеримы.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
Snake писал(а):
Prytaleks , а вот коллизии тут 300 лет не нужны... это не просто костыль, это костылище


у этой коллизии могут быть и другие функции, у тебя разве взаимодействие с ботами происходит без коллизий?

p.s. в моем случае, без них не получится, у меня турели ходячие, и стараются целится в ближайших))

p.p.s. эти коллизии бесспорно садят фпс, на 5-10, в зависимости от колва мобов, но мне без них никак.
Аватара пользователя
Пользователь
Сообщения: 2319
эм... для прицеливания коллизии не нужны
(v1-v2).length - расстояние до цели
угол к цели ывше я описал.
видимость - трейс
больше нечего проверять для прицеливания.

если целей много тогда нужно иметь массив всех акторов для прицеливания, проверять находятся они на максимальной для прицеливания дистанции
все кто попадают в эту сферу (maxdistanse >(v1-v2).length) добавляем в массив. (эту функцию можно назвать коллизией, коллизией точки со сферой, но ее математика значительно проще чем комплексные коллизии, и не нужно запускать физически движек)
потом фильтруем массив по углу, потом ищем ближайшего.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
Snake писал(а):
если целей много тогда нужно иметь массив всех акторов для прицеливания, проверять находятся они на максимальной для прицеливания дистанции
все кто попадают в эту сферу (maxdistanse >(v1-v2).length) добавляем в массив.
потом фильтруем массив по углу, потом ищем ближайшего.

ну вот кто зашел в коллизию тот и добавился в массив, а если это товер дефенс какой нибудь, и сто акторов движется не всех же считать.

p.s. я думаю что само прицеливание можно организовать, find look at rotation + set control rotation.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница