Я использую UE 5.3
Я создал класс C++ подсистемы игрового экземпляра, который добавляет конкретную логику, которая должна выполняться перед инициализацией каждого порожденного актера. См. фрагмент кода ниже. Это работает хорошо, когда я запускаю игру в режиме PIE в Unreal Engine на ПК. Но когда я развертываю его на своем Android, игра никогда не попадает внутрь Lambda, которую я добавил в OnActorPreSpawnInitialization. Будем очень признательны за любую помощь, почему это игнорируется.
void UMyGameInstanceSubsystem::Initialize(FSubsystemCollectionBase& Collection)
{
auto ActorSpawnLambda = FOnActorSpawned::FDelegate::CreateLambda([this](AActor* InActor)
{
UE_LOG(LogTemplateCBGameInstanceSubsystem, Warning, TEXT("Run lambda Starting point"));
if (AChaosCachePlayer* CCP = Cast(InActor))
{
if (ChaosCacheCollection_Temp)
{
UE_LOG(LogTemplateCBGameInstanceSubsystem, Warning, TEXT("Run lambda from class UMyGameInstanceSubsystem "));
PostSpawnChaosCachePlayer(CCP, ChaosCacheCollection_Temp);
ChaosCacheCollection_Temp = NULL;
}
}
});
UE_LOG(LogTemplateCBGameInstanceSubsystem, Warning, TEXT("GameInstance subsystem is Initialized"));
GetWorld()->AddOnActorPreSpawnInitialization(ActorSpawnLambda);
}
Подробнее здесь: https://stackoverflow.com/questions/788 ... -after-dep