Демо-проект:
Аналогия
• Аналогия 1: у нас есть микроволновка с wi-fi. Несколько человек подключились к микроволновке, и подписались на оповещение OnCookingComplete.
Когда микроволновка закончила разогревать еду, она всех оповещает.
• Аналогия 2: На какой-то базе есть охранники с радио-рациями (которые могут только принимать сообщение). И на этой базе есть диспетчерский пульт. С пульта через рацию говорят “идите в подвал“ OnCheckOutTheBasement. И все охранники, у которых есть радио-рации услышали это сообщение и идут в подвал. Пара охранников без раций не услышали сообщения.
• Аналогия 3: Банк оповещает клиентов о начислении зарплаты. Клиентам приходит смс-уведомление.
-----
Реализация
Актор-извещатель всегда один, акторов-получателей может быть много.
Актор-извещатель решает когда послать сообщение в мир (создаёт оповещение). И оповещение получат только те акторы, которые подписаны (bind) на эвент-извещателя.
Актор-извещатель может передать какие-то данные через параметры. Порядок и типы входных параметров называются “сигнатурой эвента“.
Если актору-получателю точно не нужно получать оповещение, нужно отписаться (unbind) от уведомлений.
Прежде чем вы добавляете свои новые диспатчер-эвенты, убедитесь что эти эвенты не созданы уже в Анриале.
-----
Примеры
Желательно называть сообщения диспатчера с префиксом OnSomethingHappend. И так же называть эвенты, на которые мы делаем бинд.
• OnGetItem - какой-то NPC может похвалить главного героя, что тот взял предмет
• OnBeginBuff/OnEndBuff - враги могут отбегать подальше, если узнают, что у персонажа включился бафф на близкий урон.
• OutOfAmmo - если в сумке персонажа кончились патроны, то персонаж может об этом сказать вслух
• OnFinishLevel - враги перестают атаковать, если мы добежали до какого-то места
• OnStrongWind - главного героя начинает сдувать, если WeatherSystem сообщила о сильном ветре. Пули и гранаты летят туда, куда сильно дует ветер.
• OnEveningIsComing/OnNigthIsComing - персонаж включает фонарик, если на улице становится темно
• OnBeatTheBoss (OnDestroyed) - Мы победили босса, и изменилась погода. WeatherSystem ждала от BossEnemy оповещение о смерти, и как оповещениее пришло, погода изменилась.
• OnOkButtonClick - Контроллер или Персонаж ждут нажатия кнопки в UI. UI отправляет диспатчер-сообщение (оповещение) OnOkButtonClick или OnCancelButtonClick, контроллер его получает.
(Примечание: в Блюпринтах можно при создании виджета в контроллере напрямую получить доступ к кнопке и сразу сделать бинд. Это нарушает правила ООП, но такое может быть удобно, если не хочется делать цепочку из диспатчеров.)
• OnLowHealth - Мы стреляем в противников, и как только у нас здоровье опустилось ниже 20%, противники об этом узнают и начинают хуже попадать, у них увеличивается разброс при стрельбе.
• OnDamageIsApplied (OnAnyDamage) - Мы стреляем в противника, трейсом получили на него ссылку, и можем убедиться что в него точно попала пуля. То есть, если мы выстрелили в противника самонаводящейся ракетой, убежали за стену и не видим что там происходит. Ракета долетела и нанесла урон, мы можем получить оповещение о том, что “да, ракета попала в цель“ и может быть разблокировали какую-то ачивку.
Тайм-коды:
00:00 Вступление
00:44 Аналогия
02:04 Реализация
04:41 Примеры
08:05 Заключение
175 views
19
5
1 month ago 00:01:07 586
Тихий Ден/Трейлер/Unreal Engine 5/ Cinematic
1 month ago 00:39:29 4
Пройти Все Пещеры! ► ARK: Survival Ascended #14
2 months ago 00:01:55 28
World of Tanks Blitz Reforged Update: Join the First Ultra Test!
2 months ago 00:03:03 1
Alan Walker, Kylie Cantrall - Unsure (Official Music Video)
2 months ago 00:16:06 1
Прицел ломает игровое погружение | Геймдизайн стрельбы в BreakBack | Разработка на Unreal Engine 5
2 months ago 00:31:13 1
Прохождение игры Star Wars Jedi - Fallen Order - игра 9 - Первая встреча - сестра ночи (gameplay 4K)
2 months ago 00:03:08 1
Unreal Engine 5 Animation Hack: Attach Actors with Sequencer
2 months ago 00:09:57 1
Rally | An Unreal Engine Action Thriller Short Film
2 months ago 00:01:16 1
Andor Season 2 - Teaser Trailer | Star Wars & Disney+ | Diego Luna & Ben Mendelsohn (2025)
2 months ago 00:02:59 1
What RESIDENT EVIL 1 REMAKE Would Look Like In FIRST PERSON
3 months ago 04:08:49 1
. 2: Heart of Chornobyl. Стрим #11: Патч , русская озвучка, моды.
3 months ago 00:01:34 1
Garagepocalypse promo
3 months ago 00:06:36 1
Tutorial: Place yourself into an Unreal Engine environment with green screen
3 months ago 00:22:26 9
BODYCAM New Gameplay Mode | REALISTIC FPS Call of Duty Zombies in Unreal Engine 5
3 months ago 00:06:03 79
The Witcher 4 - Official Reveal Trailer | The Game Awards 2024
3 months ago 00:06:13 1
Ведьмак 4 - Русский трейлер (Субтитры, 2026) Видео Игра [4K]
3 months ago 00:10:17 15
я кричал, меня пугали | SILENT HILL 2 REMAKE ОБЗОР
5 months ago 00:12:10 1
FireDragonGameStudio - AR Indoor Navigation with Unreal Engine 5.4
5 months ago 00:02:25 1
Diablo 2 - Act 1 | AI Movie Trailer | Cinematic
5 months ago 00:05:25 1
Donald Trump vs Kamala Harris. Epic Rap Battles of History
5 months ago 00:17:17 8
Easy Houdini: Jam2Go Datamoshing in Copernicus
5 months ago 00:05:15 37
The Witcher 4 Concept Gameplay Unreal Engine Lumen Nanite
5 months ago 00:45:37 1
Проклятие Bethesda. Creation Engine
5 months ago 00:10:32 24
Невидимость стен для игр сверху | Top Down Invisible Walls | Уроки Unreal Engine 5