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 функции...В таких случаях прибегают к использованию интерфейсов. Как пользоваться?Здесь всё немного сложнее чем в прошлых статьях, так как интерфейсы - это с̶ю̶р̶п̶р̶и̶з ̶с̶ю̶р̶п̶р̶и̶з не нода ! Это, можно сказать, набор функций. Выглядит следующим образом:Создай функцию и назови её Interaction. Как видишь, функция может принимать и передавать значения, но нам это пока не понадобится.Я создал три разных блупринта.Я хочу, чтобы когда я взаимодействовал с ними, они меняли цвет, но чтобы цвет всегда был разным(функцию смены цвета мы рассмотрели в предыдущей статье).В каждом из них нужно проделать следующие действия:-зайти в Class Settings,-добавить созданный нами Interface,-добавить Event Interaction .Теперь для каждого блупринта пропишем разную логику. Соответственно сфера пусть станет зелёной, куб красным, а конус синим.После того, как прописали логику, в блупринте персонажа вызываем наш Message "Interaction":Не забудь добавить проверку на присутствие интерфейса в объекте!Должно получиться так:Проверим в деле: Как видишь, мы вызываем разные функции в блупринтах при помощи всего одного вызова интерфейса! ЗаключениеЕсли есть какие-то вопросы или есть некоторое непонимание каких-то моментов в статье, напиши об этом в комментариях. Я напишу понятнее.Напоминаю, что вы также можете предлагать темы для следующих статей в комментариях. Я рассматриваю все варианты и не только по Unreal Engine. Спасибо, что прочитали!
Валидацию всё таки лучше делать даже с интерфейсами. Всё что есть на сцене это Actor, без проверки на наличие интерфейса вы будете пытаться его вызвать при попадании куда угодно.
Благодарю, исправил!
Это заметно скажется на производительности?
Отличные такие министатьи! Спасибо!
Как раз изучаю потихоньку движок. Для понимания пригождается.
Что дальше в планах?)
Пока не знаю. Вот буду думать.
Жду статьи об sequencer. Ибо до сих пор не понимаю в чём его надобность
Отличная статья, помогла разобраться. Спасибо!