Полезное

Мы Вконтакте

Discord канал

Использование Интерфейсов

Добавлено Апр 29 2016

Использование Blueprint Interface предоставляет общий метод взаимодействия с несколькими различными типами объектов которые все разделяют некоторые специфические функциональные возможности. Это означает, что вы можете иметь совершенно разные типы объектов, таких как автомобиль и дерево и иметь схожие свойтва, так например они оба могут быть расстреляны из оружия и получить урон.
Создавая Blueprint Interface, который содержит функцию OnTakeWeaponFire, и используемый в этих объектах, вы можете определить свою функциональность для каждого из объетов, которая будет вызываться при вызове функции OnTakeWeaponFire.

Добавление интерфейса

Blueprint Interface, а также интерфейсы, определенные через C++, могут быть добавлены к любому типу блупринта.

  1. Откройте Level Blueprint.

    Adding Interfaces

  2. Нажмите Class Settings на тулбаре.

    Adding Interfaces

  3. На панели Details, что справа, перейдите в категорию Interfaces.
  4. Нажмите кнопку Add Interfacetton что бы увидеть список доступных интефейсов.

    Adding Interfaces
    Adding Interfaces

Интерфейсы могут быть удалены, нажав на крестик, расположенный рядом с каждым используемым интерфесом. Inherited Interfaces вкладка в категории Interfaces заполнятся автоматически любыми интерфейсами, которые были унаследованы этим объектом.

Реализация компонентов интерфейса

Когда интерфейс добавлен к блупринту, блупринт должен реализовывать функции интерфейса для того, чтобы выполнять какие — либо действия при вызове. Это делается путем размещения нодов событий для функций интерфейса в EventGraph.

  1. Щелкните правой кнопкой мыши на EventGraph и выберите Add Event > Event….
    Interfaces
    Выберите тип события который вы хотите добавить к графу.
  2. Создайте функциональность которая должна выполняться при вызове данного события.
    Interfaces

Добавление функций к интерфейсу

Функции интерфейса выполняются за счет использования интерфейса сообщений, которые выглядят и действуют как обычные функции.

Interfaces

Вызов функций интерфейса из других блупринтов

Интерфейсы полезны для обеспечения возможности обмена данными между разными блупринтами. Функции из единого интерфейса можно вызвать из других блупринтов. Это может быть сделано, при двух критериях:

  • Оба блупринта реализуют одинаковый интерфейс с требуемой функцией.
  • Вызывающий блупринт знает имя экземпляра в игре другого блупринта.

При создании узла интерфейсной функции в пределах Graph Event, вы часто будете видеть две версии функции, перечисленные в контекстном меню.

Interfaces

Важно отметить, что версия Call Function является локальной версией, предназначенной только для вызова в этом блупринте.
Версии перечисленные в разделе Interface Messages предназначены для вызова функции через интерфейс в других блупринтах, использующих один и тот же интерфейс.

Interfaces

Interfaces

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

Обратите внимание, в этом изображении мы посылаем другой блупринт в качестве входа Target. Если блупринт не использует интерфейс, то ничего не произойдет.

Interfaces

Чтобы указать блупринт, который существует в пределах уровня, лучше сделать публичную переменную «Actor» типа, и назначить соответствующий блупринт в значение этой переменной, используя панель Details.

Вызов функций интерфейса из Level Blueprint

Интерфейсы также дают возможность для связи между подуровнями с помощью Get Streaming Level ноды. Если загружен уровень, то Interface Message будет вызывать функцию с блупринтом этого уровня в качестве цели.

Interfaces

Определение функций интерфейса

Одним из наиболее важных аспектов функций интерфейса является то, что так как у них нет реализации своих собственных возможностей, они могут быть, независимо друг от друга, определены для каждого блупринта, который использует интерфейс.
После того, как интерфейс был определен с помощью блупринта, функции этого интерфейса будут видны в My Blueprint панели.

Interfaces

Если вы дважды щелкните эту функцию, она откроется в редакторе блупринтов, отобразив локальную реализацию этой функции. Независимая функциональность определённая здесь будет уникальна для этого блупринта. Таким образом, вы можете определить пользовательские функции для каждого блупринта, который использует интерфейс.
Например, на этом изображении мы видим основную функцию интерфейса, в открытом блупринте. На данный момент, функция ничего не делает.

Interfaces

Мы могли бы создать простую сеть, чтобы сделать сравнение чисел.

Interfaces

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

Interfaces

Добавил: Flakky Категория: Blueprint'ы


Комментарии

На данный момент комментарии отключены.

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