Основная идея заключается в использовании делегатов (или указателей на функции), Unreal имеет собственную реализацию класса делегатов, которая в основном хранит массив пар.
Так что в общих терминах c у вас будет класс он содержит основное событие, например, когда обнаруживается столкновение внутри класса C ++, возможно, достаточно глубокое, чтобы быть в контакте с физическим модулем.
Этот класс будет иметь «делегат», который может получить любой объект с указателем на функцию. Например: YourPlayerBlueprint, OnCollide (params). (Так же как вы можете добавлять новые функции для вызова, вы можете удалить его).
Как только это настроено, при обнаружении коллизии сработают все связанные функции и будут работать как событие.
Более того, (это предположение) все функции должны быть независимыми поэтому он может работать параллельно, улучшая производительность.
Если вас больше интересуют указатели делегатов и функций, я рекомендую проверить это «руководство / объяснение» https://blog.molecular-matters.com/2011/09/19/generic-type-safe-delegates-and-events-in-c/
Надеюсь, я помогу немного понять события в нереальном ,