• Транспорт • Мода • Рецепты • Блоги • Охота • Путешествия • Спорт • Веселье • Своими Руками • IT • Знания
Мини-Игры
x

x
zakruti.com » ru » IT – Софт » Компьютерные Секреты
Урок 19 - Unreal Engine 4 Blueprint Interface - Обмен данными между блупринтами

Урок 19 - Unreal Engine 4 Blueprint Interface - Обмен данными между блупринтами

VKTwitterOK

содержание видео

Рейтинг: 4.0; Голоса: 1
В этом уроке вы узнаете что такое Blueprint Interface и научитесь его применять в игровом движке Unreal Engine Мы создадим Blueprint логику для примера, в которой будем передавать данные между блупринтами с помощью BP Interface, и с помощью этих данных из одного блупринта будет меняться размер фигур в других блупринтах
Дата: 2022-08-29

Комментарии и отзывы: 10


Нет, это не так работает. -
Интерфейсы нужны не для того, чтобы -передавать данные множеству объектов-. Они позволять дать набор одинаковых методов разным классам, подходящим для выполнения одной и той же задачи, и тем самым работать с ними схожим образом. По сути они описывают набор правил взаимодействия (потому так и называются. Это особенно нужно когда реализуешь эти методы в разных ветках иерархии классов, а множественное наследование запрещено (как в UE4) (да и вообще, множественное наследование для этого - плохая практика.
Методы интерфейса не вызываются сразу на нескольких объектах, и поэтому нельзя передать ссылку на один объект с интерфейсом чтобы вызвать этот метод сразу на всех. Из-за этого и приходится делать -Get All Actors with Interface- и вызывать метод на каждом (а не из-за параллельности.
И цикл ForEach там тоже прекрасно работает. Более того, как раз его и стоит использовать, поскольку размер полученного массива заранее неизвестен (ну, либо получать его размер по ходу и передавать в цикл For, но зачем.
А для того чтобы одним вызовом передать информацию нескольким объектам нужны диспетчеры, хотя на них придётся из каждого объекта подписываться.

ответить

Автор, за предыдущие видосы большое спасибо конечно, они хороши, но тут прям всё неверно рассказал. И то что в результате у тебя что то работает не доказывает обратное. Интерфейс - это темплейт класса а также его можно использовать как -тип- для объединения разных классов с одним интерфейсом в массивы их дальнейшую обработку как объекты общего типа. Это идёт из общей информации об ООП любого языка программирования. В 3 объекта у тебя команда не передалась не из-за того что -плохо работают параллельные задачи- а потому что ты просто получил все инстансы которые реализуют твой интерфейс и брал там только 0й элемент массива. Параллельных задач там написано не было вообще.
Сори если задел. Без негатива < 3

ответить

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

ответить

Как сделать передачу данных из блупринта, если он при запуске спавнится! То есть изначально его нет в сцене. В да, я повторил видео, но у меня нет взаимодействие удара или чего-то ещё, просто объект при запуске игры передает значения другому - предложенный вами метод у меня не сработал, есть в нем проблемы или это я что-то упустил из видео?
ответить

Привет, автор, спасибо за урок, подскажи пожалуйста, пытаюсь сделать следующее, игрок или предмет встает на площадку (кнопку) на земле, после чего активируется движение лифта (платформы) пытаюсь всяко делать но не могу данные передать, как сделать можешь описать особенность этого?
ответить

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

ответить

9: 25 - вместо forloop испльзуем foreach, и получаем цикл, актуальный для любого количества элементов массива, он просто переберет все доступные по порядку. Если, конечно, у нас именно такой частный случай.
ответить

1) 7: 52 - мы не передавали в три, ты же указал что индекс 0, в чем тут параллельность?
2) 9: 55 - Почему логика работать не будет? ArrayIndex из ForEachLoop не подойдет?
А ArrayElement почему не подойдет, без get?

ответить

У тебя они одновременно не увеличивались только из за того что ты указал в Get - 0, Если просто засунуть Out Actors без Get (номер актера) в Target то все одновременно будут меняться
ответить

Помимо раздражающей, мешающей музыки слишком быстрая картинка. Тряц бряц и всё, окошко уже появилось, что чиво куда нажимать, слишком быстро, сложна сложна непонятна
ответить
Добавить отзыв, комментарий






Другие видео канала