Тёмный

24. Blueprint Unreal Engine 4 - Event Dispatcher (RUS) 

Unreal Engine Rus
Подписаться 82 тыс.
Просмотров 28 тыс.
50% 1

Рассказываю про Event Dispatcher. О том, для чего применять, как применять и что стоит учитывать.
Полезные ссылки:
Наша группа в ВК - uengine
Наш Discord - / discord
Наш форум - uengine.ru/forum/
Пожертвования - uengine.ru/donation

Опубликовано:

 

14 сен 2018

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 48   
@user-tp4ho9do8d
@user-tp4ho9do8d 5 лет назад
уии. спасибоооо, ты как Боженька!!!
@shadergt2610
@shadergt2610 4 года назад
Спасибо Дружище!) в нужное время нужный тутор))
@w.t.2905
@w.t.2905 2 года назад
3:19 Будем вызывать диспатчер, который ничего не будет делать. Моё блюпринтовое месиво справляется с этой задачей даже без диспатчера!
@themessengerofgood
@themessengerofgood 4 года назад
Спасибо! Про флип-флоп тоже было полезно!
@threeworlds4114
@threeworlds4114 10 месяцев назад
дякую
@-miromax-5349
@-miromax-5349 4 года назад
FlipFlop не проходили раньше
@flynsxcool
@flynsxcool 5 лет назад
Спасибо большое. Некоторые вещи поймут те кто писал на с++ ))
@anotherpain9120
@anotherpain9120 2 года назад
Спасибо.
@antonmercer6203
@antonmercer6203 3 года назад
круто
@aleksandr7076
@aleksandr7076 2 года назад
Спасибо! ++++++++ ++++++
@maestro2550
@maestro2550 5 лет назад
Поплыл ещё в прошлом ролике, а тут совсем. Можно больше примеров как и где используется.
@vladislavshpakov7094
@vladislavshpakov7094 3 года назад
У тебя есть виджет отображения количества патронов в оружии. Ты биндишь его к объекту оружия, к событию выстрела, и выводишь количество патронов.
@sergeyfilin5204
@sergeyfilin5204 Год назад
Отличный тутор, спасибо!
@Kaktus_Kryaktus
@Kaktus_Kryaktus 4 года назад
Спасибо за урок. Помогите разобраться, почему CreateEvent не выдаёт в списке функции, доступные для назначения. Версия движка 4,23,1.
@NikiPlayGame
@NikiPlayGame 4 года назад
А как сделать привязку к частям тела к примеру выстрел в тело или в голову и соответственно распределение урона (в голову к примеру 100%, а в тело 30%)
@tonyshed573
@tonyshed573 3 года назад
орнул с макарон 18:28
@NatryCl
@NatryCl 4 года назад
А как привязаться к event dispatcher у в level blueprint
@CYBERBORODA483
@CYBERBORODA483 5 лет назад
что то у меня не так диспачер работает в версии 21- отвязка не сработала. А не сработала. выявилось только по вычитанию здоровья. Она главное продолжала печатать. Но не выводила числа. Убрал удаление диспачера. Числа появились.
@Mychannel-qz9mp
@Mychannel-qz9mp 5 лет назад
Помогите кто знает как соединять по Socket 2 статичных сетки, и так чтобы можно было менять Socket по имени.
@user-gh5ez1kh3u
@user-gh5ez1kh3u 3 года назад
Очень классные уроки, но вот не совсем понял область применения Dispatcher-ов, так то все то же самое и через касты можно получить, да и зачем куда-то передавать инвентарь или хп, если вся логика с этими характеристиками все равно (как правило) выполняется в BP персонажа. Поясните кому не сложно.
@TheroLayfer
@TheroLayfer 2 года назад
через касты тебе придётся заранее прописать всех получателей сообщения(как в электронной почте) и заранее знать что каждый из них должен выполнить. это плохо работает когда у тебя акторы динамически создаются во время игры и ты не знаешь получателей заранее и тебе нужно мастерить какой-то код для их вычисления (например записывать их в список, потом при наступлении события проходить по списку и делать касты к каждому а чтобы знать что какой актор должен сделать ему при записи в список надо также добавлять во второй столбец какие-то ссылки на инструкции которые его попросят выполнить при наступлении события.. вот подобный механизм удобно реализован эвент диспатчером). в случае с диспатчером ты просто кричишь в окно лето пришло, и все кто играет в песочнице делают то что у них запланировано на лето.
@danielluko7635
@danielluko7635 Год назад
@@TheroLayfer Половина проблемы лечится созданием функций в получателях-акторах, которые вызываются нужным актором.
@TheroLayfer
@TheroLayfer Год назад
@@danielluko7635 это называется нужно заранее знать всех получателей которым надо доставить сообщение и каждому его лично передать.. ну допустим у вас динамически генерируются мячики и по событию они все должны раздвоиться, функцию раздвоения пишем в мячике, а по событию тупо берём всех экземпляров актора и вызываем ему функцию обработчик эвента. вроде норм никаких диспатчеров не надо. но вот теперь у нас раздваиваться должны только некоторые мячики ну ладно перепишем обработчик мячика добавим булевую переменную в обработчик эвента. ой а чего так лагает каждый раз когда из 100 мячиков раздвоиться должны только 5, а у нас всегда 100 вызовов гоняется толку что большинство пустые.. а может можно просто в методе хранить список только тех обработчиков эвента у тех экземпляров класса которые должны реагировать на него? и вызывать только их.. да не вопрос (думаю реализация очевидна список и пару методов для его обновления добавить в объект генерирующий эвент несложно).. а потом ой а зачем реализацию этих методов и список каждый раз писать, может их выпихнуть в отдельный класс который будет хранить все эвенты и списки тех кто на них подписался( ну вроде тоже несложно сделать) и вот так мы сделали свой эвент диспатчер.
@danielluko7635
@danielluko7635 Год назад
@@TheroLayfer Просто я изучал Unity с C# , и там такого понятия не было, обычно общение между классами происходит с помощью переменных этого класса и вызова их функций насколько я знаю. А тут автор видео говорит что "нужно писать только тот код, который относится к этому объекту" и тут не очень понятно что плохого в вызове функции из другого класса и не очень понимаю ту границу между диспатчером и вызовом функции из другого класса, т.е. что когда использовать.
@TheroLayfer
@TheroLayfer Год назад
@@danielluko7635 если игра в перспективе може стать сложной лучше сразу через диспатчер делать, ну не навызываешься ты на тысячи объектов где у кого какая логика, поэтому логику дробят чтобы цвет травы в траве задавался, а восход солнца в небе чтобы потом можно было независимо убедиться вот код цветка он слушает эвент восхода солнца и отрабатывает раскрытие бутона? хорошо, а вот код солнышка оно создаёт при восходе в диспатчере эвент? отлично. для простых игр можно конечно просто из солнышка фигачить раскрытие бутона, особенно если ты один над кодом работаешь а не так что у тебя травинку один отдел пишет, лесок другой, а в поле каждый колосок вообще будет через встроенный скриптовый язык как UGC добавлен и мы им в апи просто сунем метод позволяющий подписаться на любой из существующих эвентов а чё они там с него вызовут вообще не знать бы. и ты в солнышке просто создал эвент восхода проверил что всё работает и всё никто из этих травяных или лесных в твой солнечный код не лазит каждый раз когда решит что хочет бутон или шишку распустить, да и даже если этот лесник это ты сам из другого временного промежутка незачем этому криворукому дебилу в хороший код лазить.
@prussax
@prussax 3 года назад
Так, а чем тогда интерфейсы отличаются от диспетчера? По сути, вроде как, одно и то же: есть объект, в котором интерфейс\диспетчер прописан без реализации, а есть объект, в котором эта реализация прописана.
@user-ot1hf9ov6s
@user-ot1hf9ov6s 2 года назад
Что-то общее действительно есть. Интерфейс идет как часть полиморфизма и служит для создания единых методов чтоб управлять разными классами извне, например, есть какой то сервис и он манипулирует группой разных объектов(у которых общий интерфейс) с помощью интерфейса. В случае с диспатчером же все ровно наоборот: мы создаем в объекте слушателя, который прикрепляется к диспатчеру и когда диспатчер отрабатывает, то слушатель в объекте об этом уведомляется и уже изолированно сам объект как то на это реагирует. Можно одно и то же сделать обоими вариантами, только диспатчеры предоставляют более гибкий и легкий способ отвязать слушателя от диспатчера, когда в случае с интерфейсом нам надо будет постоянно помещать и убирать объект из пула объектов, чтоб предотвратить вызов метода, когда он нам не нужен.
@Bradoxxx
@Bradoxxx 4 года назад
у меня почемуто гейм мод пустой. Не в том смысле что пустое окно редактора, а совсем ничего нет. Ни бара сбоку где создавать поюшки ни основной области куда накидывать блоки. Тупо пустое серое окно с вкладнками файл, окно, вид и т.д. ВТФ?
@TeenagerLiza
@TeenagerLiza 4 года назад
Там нужно нажать на надпись чтрбы открыть редактор блупринтов
@CYBERBORODA483
@CYBERBORODA483 5 лет назад
и функции не появились в creatEVENT
@user-nl9oc9rp1h
@user-nl9oc9rp1h 2 года назад
В чём разница custom event от event dispatcher? Можно ведь то же самое сделать через кастом
@barunovas
@barunovas Год назад
custom event - воид функция (в плюсах есть такой параметр к функции) диспатчер - событие
@user-ii4zs8ru6w
@user-ii4zs8ru6w 6 месяцев назад
@@barunovas из этого выходит что кастомные ивенты жрут больше памяти так как они функции? Поправьте пожалуйста если не прав
@xrenegatx5405
@xrenegatx5405 4 года назад
А что будет, если диспачер находится во многих классах(БП) и вдруг нам понадобилось изменить/добавить/удалить параметр в главном классе, потом руками перебирать овер дофига классов делая перепривязку/рефреш привязанность кастомного эвента? И почему получая, скажем, персонажа неправильно получать из него что то? Например какой либо флаг? Какой то диссонанс))
@f.artemenkov
@f.artemenkov 4 года назад
​@@xl1034 Зачем обрабатывать реакцию на вызов диспатчера в том же объекте, в котором он и вызывается? Наоборот же. Например, у нас динамит с таймером. Персонаж по нажатию на "B" делает трейс, получает объект bp_dynamite и вызывает у него функцию StartTimer или StopTimer при повторном нажатии. И тут всё просто и понятно. Динамит сам тикает, взрывается, вызывает систему частиц итд. Но, допустим, мы хотим на момент взрыва забиндить какое-нибудь событие на сцене. Не проверять же в тике каждый кадр взорвался динамит или нет. Вот тут и нужен как раз диспатчер. В ивент-графе уровня берем объект динамита и биндим на его диспатчер boom событие OnDynamiteBoom.
@user-os4ip8ok5e
@user-os4ip8ok5e 5 лет назад
Хелоу
@ruslandad365
@ruslandad365 3 года назад
Сложна!!!!
@kekwayne5465
@kekwayne5465 2 года назад
Чувак, пей таблетки. А то всё "Я не помню", да "Я не помню"
@nofear1615
@nofear1615 2 года назад
Чел, это было 3 года назад
@kekwayne5465
@kekwayne5465 2 года назад
@@nofear1615 чел, это было 2 месяца назад
@csercser2378
@csercser2378 2 года назад
Вот , конкретно этот урок, вообще плохо понятен.
@finishsuffering
@finishsuffering 2 года назад
что за непонятная дичь....
@nofear1615
@nofear1615 2 года назад
Чел...
@finishsuffering
@finishsuffering 2 года назад
@@nofear1615 а?
@user-tp4ho9do8d
@user-tp4ho9do8d 5 лет назад
кстати перснаж ливитирует. Я имею солидный опыт в анимации,это тнедопустимо,но думаю ты в курсе.
@user-tp4ho9do8d
@user-tp4ho9do8d 5 лет назад
мозгодробительная логика для столов. кому нужны такие столы? но думаю мазахисты заценят) на них еще можно покататьс яи получать дамаг)
Далее
Maybe i need to add instructions @popflexactive
00:14
9. Blueprints Unreal Engine 4 - Макросы
23:10
Просмотров 42 тыс.
20. Blueprints Unreal Engine 4 - Массивы
14:02
Maybe i need to add instructions @popflexactive
00:14