OnActorPreSpawnInitialization 委托广播在 Android 上部署后完全被忽略

问题描述 投票:0回答:1

我正在运行 UE 5.3 我创建了游戏实例子系统 C++ 类,它添加了在初始化每个生成的 Actor 之前运行的特定逻辑。请参阅下面的一段代码。当我在 PC 上的虚幻引擎中以 PIE 模式运行游戏时,效果很好。但是当我将其部署到 Android 上时,游戏永远不会进入我添加到 OnActorPreSpawnInitialization 中的 Lambda 内部。任何帮助为什么它被忽略将非常感激。

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<AChaosCachePlayer>(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);
}
android deployment delegates unreal-engine5
1个回答
0
投票

GameInstanse 子系统的加载时间早于 Android 的 GameMode。可以添加委托,例如GameMode 构造函数可以解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.