Блог / Урок
Как система Interaction определяет, на что вы смотрите
Первый вопрос, на который должна ответить система взаимодействия, легко сформулировать и легко решить неправильно: на что смотрит игрок? Rookspire Interaction System отвечает на него одним компонентом на персонаже — AC_Interactor.
Сфера, а не линия
Одиночный line trace от камеры промахивается мимо тонких объектов и наказывает игрока за прицел, сбитый на несколько пикселей. Вместо этого interactor делает sweep небольшой сферой: от глаз персонажа вперёд на заданную вами дальность. Первый объект, с которым можно взаимодействовать, становится фокусом.
Благодаря старту от глаз, а не от камеры, это работает от первого и от третьего лица, на любом pawn и без компонента камеры.
Двадцать раз в секунду
По умолчанию sweep выполняется 20 раз в секунду, а не каждый кадр. Этого достаточно, чтобы подсказка появлялась мгновенно, и настолько дёшево, что затратами можно пренебречь. Дальность, радиус и частота — настройки компонента.
Состояние читается каждый раз заново
При каждом определении состояние цели читается заново: её подсказка, действие, включена ли она и почему нет. Поэтому сундук, который игрок отпирает, глядя на него, сразу меняет подсказку, и никаких событий подключать не нужно.
Удержание отменяется, если отвести взгляд
При удержании по таймеру отпущенная клавиша или взгляд на другой объект отменяют удержание, так что игрок не может начать собирать травы и уйти, пока прогресс продолжает заполняться.
Всё описанное выше есть в быстром старте и руководстве Interaction System.