Полезное
Мы Вконтакте
Discord канал
Использование Blueprint Interface предоставляет общий метод взаимодействия с несколькими различными типами объектов которые все разделяют некоторые специфические функциональные возможности. Это означает, что вы можете иметь совершенно разные типы объектов, таких как автомобиль и дерево и иметь схожие свойтва, так например они оба могут быть расстреляны из оружия и получить урон.
Создавая Blueprint Interface, который содержит функцию OnTakeWeaponFire, и используемый в этих объектах, вы можете определить свою функциональность для каждого из объетов, которая будет вызываться при вызове функции OnTakeWeaponFire.
Blueprint Interface, а также интерфейсы, определенные через C++, могут быть добавлены к любому типу блупринта.
Когда интерфейс добавлен к блупринту, блупринт должен реализовывать функции интерфейса для того, чтобы выполнять какие — либо действия при вызове. Это делается путем размещения нодов событий для функций интерфейса в EventGraph.
Функции интерфейса выполняются за счет использования интерфейса сообщений, которые выглядят и действуют как обычные функции.
Интерфейсы полезны для обеспечения возможности обмена данными между разными блупринтами. Функции из единого интерфейса можно вызвать из других блупринтов. Это может быть сделано, при двух критериях:
При создании узла интерфейсной функции в пределах Graph Event, вы часто будете видеть две версии функции, перечисленные в контекстном меню.
Важно отметить, что версия Call Function является локальной версией, предназначенной только для вызова в этом блупринте.
Версии перечисленные в разделе Interface Messages предназначены для вызова функции через интерфейс в других блупринтах, использующих один и тот же интерфейс.
При вызове функции интерфейса сообщений необходимо обязательно указать экземпляр соответствующего блупринта, на котором вы вызываете функцию.
Обратите внимание, в этом изображении мы посылаем другой блупринт в качестве входа Target. Если блупринт не использует интерфейс, то ничего не произойдет.
Интерфейсы также дают возможность для связи между подуровнями с помощью Get Streaming Level ноды. Если загружен уровень, то Interface Message будет вызывать функцию с блупринтом этого уровня в качестве цели.
Одним из наиболее важных аспектов функций интерфейса является то, что так как у них нет реализации своих собственных возможностей, они могут быть, независимо друг от друга, определены для каждого блупринта, который использует интерфейс.
После того, как интерфейс был определен с помощью блупринта, функции этого интерфейса будут видны в My Blueprint панели.
Если вы дважды щелкните эту функцию, она откроется в редакторе блупринтов, отобразив локальную реализацию этой функции. Независимая функциональность определённая здесь будет уникальна для этого блупринта. Таким образом, вы можете определить пользовательские функции для каждого блупринта, который использует интерфейс.
Например, на этом изображении мы видим основную функцию интерфейса, в открытом блупринте. На данный момент, функция ничего не делает.
Мы могли бы создать простую сеть, чтобы сделать сравнение чисел.
Теперь, когда функция вызывается локально, она будет принимать значение и сравнить его с номером 10, а затем выводит логический результат на экран.