Skip to content
Snippets Groups Projects

Invalidate display log actor after world is finished

2 files
+ 14
7
Compare changes
  • Side-by-side
  • Inline

Files

@@ -20,13 +20,14 @@ void UniversalLoggingImpl::StartupModule()
FWorldDelegates::OnPostWorldInitialization.AddRaw(this, &UniversalLoggingImpl::OnWorldStart);
FWorldDelegates::OnWorldPostActorTick.AddRaw(this, &UniversalLoggingImpl::OnPostActorTick);
FWorldDelegates::OnWorldCleanup.AddRaw(this, &UniversalLoggingImpl::OnWorldEnd);
#if WITH_EDITOR
FEditorDelegates::BeginPIE.AddRaw(this, &UniversalLoggingImpl::OnSessionStart);
FEditorDelegates::EndPIE.AddRaw(this, &UniversalLoggingImpl::OnSessionEnd);
FEditorDelegates::BeginPIE.AddRaw(this, &UniversalLoggingImpl::OnSessionStart);
FEditorDelegates::EndPIE.AddRaw(this, &UniversalLoggingImpl::OnSessionEnd);
#endif
Session_ID = "";
Session_ID = "";
}
void UniversalLoggingImpl::ShutdownModule()
@@ -41,10 +42,10 @@ void UniversalLoggingImpl::OnWorldStart(UWorld* World, const UWorld::Initializat
On_Screen_Log_Actor = dynamic_cast<AOnScreenLog*>(World->SpawnActor(AOnScreenLog::StaticClass()));
//only set Session_ID on the first world of this session
if(Session_ID != "")
return;
if(Session_ID != "")
return;
if (World->IsPlayInEditor())
if (World->IsPlayInEditor())
ResetSessionId("PlayInEditor");
else if (World->IsPlayInPreview())
ResetSessionId("PlayInPreview");
@@ -52,6 +53,11 @@ void UniversalLoggingImpl::OnWorldStart(UWorld* World, const UWorld::Initializat
ResetSessionId("Play");
}
void UniversalLoggingImpl::OnWorldEnd(UWorld*, bool bSessionEnded, bool bCleanupResources)
{
On_Screen_Log_Actor = nullptr;
}
void UniversalLoggingImpl::OnSessionStart(const bool)
{
Session_ID = "";
Loading