Полезное
Мы Вконтакте
Discord канал
Прямые коммуникации являются наиболее распространенным методом взаимодействия блупринтов и отлично подходят тогда, когда у вас есть два блупринта, и вы знаете что им необходимо обменяться некой информацией.
В этом типе связи, всегда один блупринт обращается к другому. Самый простой способ использования этого метода, получение ссылки на другой блупринт, через название класса, и указания какой экземпляр этого блупринта необходимо использовать.
Первое, что вам нужно сделать для того, чтобы использовать прямую коммуникаию, заключается в определении взаимодействующих блупринтов.
Здесь мы имеем персонажа и потолочный светильник, и хотим что бы персонаж мог его отключить.
В этом случае рабочий блупринт это наш персонаж, а целю является блупринт светильника. Используя прямые взаимодействия можно сказать, что, когда игрок нажимает кнопку, блупринт потолочного светильника должен выключить свет.
Для этого нам нужно создать открытую переменную внутри нашего блупринта персонажа.
Мы создали переменную типа блупринта потолочного светильника.
Теперь, выбрав нашего персонажа на уровне, мы можем увидеть, на панели Details новое поле для установки значения нашей переменной.
По умолчанию переменная установлена как None. Чтобы определить, какой экземпляр светильника вы хотите изменять, вы должны нажать на кнопку пипетки и выбрать этот объект на уровне.
Теперь благодаря этой переменной мы точно знаем к какому объекту мы хотим получить доступ через блупринт.
Когда вы работаете с функциями в блупринтах, вы все еще можете использовать прямые взаимодействия, указав тип целевого блупринта в качестве параметра для этой функции.
При использовании функции, вам нужно будет еще указать, экземпляр объекта к которому вы хотите обратиться. Это может быть сделано как и выше, с помощью публичной переменной, но уже подключаемой к специально созданному вами входу функции.
Наиболее часто ошибка возникает, когда экземпляр объекта не указан вообще в переменной. Если у вас возникли проблемы при получении доступа к нужному объекту, убедитесь,
что вы указали, какой именно экземпляр этого объекта вы хотите использовать.
Если вместо этого вы установите переменную из результата вызова функции, вы должны увидеть предупреждение в журнале, что переменная имеет «Access None» исключение. Если у вас открыто окно «Message Log», оно отобразит ссылку на узел вызывающий проблему.
Выше вы видите «Access None» исключение. Исключение указывает на ноду, которая вызывает проблемы. При нажатии откроется блупринт, в котором используется данная нода.