Blueprint Interfaces. Unreal Engine 4 по-простому

Cast'ы - это хорошо, но интерфейсы...

Итак. Сегодня нам предстоит понять:
-что такое интерфейсы,
-почему интерфейсы иногда лучше и проще кастов,
-как взаимодействовать с объектами посредством интерфейсов,
-̶T̶h̶e̶ ̶L̶a̶s̶t̶ ̶O̶f̶ ̶U̶s̶ 2 ̶и̶л̶и̶ ̶C̶y̶b̶e̶r̶p̶u̶n̶k̶ ̶2̶0̶7̶7̶

Для чего нужны Blueprint Interfaces?

Если нужно вызывать разные события в разных Blueprints.
Если нужно передавать информацию в разные Blueprints.

Ты можешь спросить: "Ну зачем мне эти интерфейсы? Я ведь функции и так могу через Cast To вызывать."
Ну, я предполагаю, что если ты будешь в разных объектах вызывать разные функции, то у тебя получится доширак:

​И это только 4 объекта. Представь, если их будет 20 и в каждом ещё по 4 функции...
​И это только 4 объекта. Представь, если их будет 20 и в каждом ещё по 4 функции...

В таких случаях прибегают к использованию интерфейсов.

Как пользоваться?

Здесь всё немного сложнее чем в прошлых статьях, так как интерфейсы - это с̶ю̶р̶п̶р̶и̶з ̶с̶ю̶р̶п̶р̶и̶з не нода ! Это, можно сказать, набор функций. Выглядит следующим образом:

Blueprint Interfaces. Unreal Engine 4 по-простому

Создай функцию и назови её Interaction.

​Как видишь, функция может принимать и передавать значения, но нам это пока не понадобится.
​Как видишь, функция может принимать и передавать значения, но нам это пока не понадобится.

Я создал три разных блупринта.

Blueprint Interfaces. Unreal Engine 4 по-простому

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

В каждом из них нужно проделать следующие действия:
-зайти в Class Settings,
-добавить созданный нами Interface,
-добавить Event Interaction .

Blueprint Interfaces. Unreal Engine 4 по-простому

Теперь для каждого блупринта пропишем разную логику. Соответственно сфера пусть станет зелёной, куб красным, а конус синим.
После того, как прописали логику, в блупринте персонажа вызываем наш Message "Interaction":

Blueprint Interfaces. Unreal Engine 4 по-простому

Не забудь добавить проверку на присутствие интерфейса в объекте!

Должно получиться так:

Blueprint Interfaces. Unreal Engine 4 по-простому

Проверим в деле:

Как видишь, мы вызываем разные функции в блупринтах при помощи всего одного вызова интерфейса!

Заключение

Если есть какие-то вопросы или есть некоторое непонимание каких-то моментов в статье, напиши об этом в комментариях. Я напишу понятнее.
Напоминаю, что вы также можете предлагать темы для следующих статей в комментариях. Я рассматриваю все варианты и не только по Unreal Engine.
Спасибо, что прочитали!

5454
20 комментариев

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

2
Ответить

Благодарю, исправил!

1
Ответить

Это заметно скажется на производительности?

Ответить

Отличные такие министатьи! Спасибо!

Как раз изучаю потихоньку движок. Для понимания пригождается.

Что дальше в планах?) 

1
Ответить

Пока не знаю. Вот буду думать.

Ответить

Жду статьи об sequencer. Ибо до сих пор не понимаю в чём его надобность

1
Ответить

Отличная статья, помогла разобраться. Спасибо!

1
Ответить