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.
Спасибо, что прочитали!

8989 показов
8.7K8.7K открытий
20 комментариев

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

Ответить

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

Ответить

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

Ответить

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

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

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

Ответить

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

Ответить

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

Ответить

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

Ответить