Unreal engine 5
April 30

Unreal Engine MassSignalSubsystem

Обработка сигналов в Unreal Engine 5 MassSignalSubsystem.

#include "MassSignalSubsystem.h"

void SomeFunction()
{
    // Получение подсистемы сигналов
    UMassSignalSubsystem* SignalSubsystem = GEngine->GetEngineSubsystem<UMassSignalSubsystem>();

    // Создание имени сигнала
    FName SignalName = FName(TEXT("MySignal"));

    // Создание массива сущностей
    TArray<FMassEntityHandle> Entities;

    // Заполнение массива сущностей...

    // Отправка сигнала сущностям
    SignalSubsystem->SignalEntities(SignalName, Entities);
}
#include "MassSignalSubsystem.h"
#include "MassStateTreeTaskBase.h"

class FMyStateTreeTask : public FMassStateTreeTaskBase
{
public:
    FMyStateTreeTask()
    {
        // Получение подсистемы сигналов
        UMassSignalSubsystem* SignalSubsystem = GEngine->GetEngineSubsystem<UMassSignalSubsystem>();

        if (SignalSubsystem)
        {
            // Подписка на сигнал
            FDelegateHandle SignalHandle = SignalSubsystem->GetSignalDelegateByName(FName("MySignal")).AddRaw(this, &FMyStateTreeTask::OnMySignalReceived);
        }
    }

    // Функция обратного вызова для обработки сигнала
    void OnMySignalReceived(const FMassEntityHandle& Entity)
    {
        // Обработка сигнала...
    }
};