diff --git a/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp b/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp index d22efd4..068f7b2 100644 --- a/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp +++ b/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp @@ -58,27 +58,6 @@ TMap> UHarmonyLinkGraphics::_DefaultSettings }} }; -UHarmonyLinkGraphics::UHarmonyLinkGraphics() -{ - UE_LOG(LogHarmonyLink, Warning, TEXT("HarmonyLinkGraphics initialized.")); - if (_INSTANCE != this) - { - if (_INSTANCE) - { - DestroySettings(); - } - - _INSTANCE = this; - } - - AddToRoot(); - - FWorldDelegates::OnPostWorldInitialization.AddStatic(&UHarmonyLinkGraphics::OnPostWorldInitialization); - FWorldDelegates::OnPreWorldFinishDestroy.AddStatic(&UHarmonyLinkGraphics::OnWorldEnd); - - Init(); -} - UHarmonyLinkGraphics::~UHarmonyLinkGraphics() { UE_LOG(LogHarmonyLink, Verbose, TEXT("~UHarmonyLinkGraphics called.")); @@ -276,6 +255,7 @@ UHarmonyLinkGraphics* UHarmonyLinkGraphics::GetSettings() // Proceed to create a new singleton instance _INSTANCE = NewObject(); + _INSTANCE->Init(); return _INSTANCE; } @@ -353,6 +333,22 @@ void UHarmonyLinkGraphics::DestroySettings() void UHarmonyLinkGraphics::Init() { + UE_LOG(LogHarmonyLink, Warning, TEXT("HarmonyLinkGraphics initialized.")); + if (_INSTANCE != this) + { + if (_INSTANCE) + { + DestroySettings(); + } + + _INSTANCE = this; + } + + AddToRoot(); + + FWorldDelegates::OnPostWorldInitialization.AddStatic(&UHarmonyLinkGraphics::OnPostWorldInitialization); + FWorldDelegates::OnPreWorldFinishDestroy.AddStatic(&UHarmonyLinkGraphics::OnWorldEnd); + UE_LOG(LogHarmonyLink, Log, TEXT("Init called.")); if (!HarmonyLinkLib::HL_Init()) @@ -650,6 +646,11 @@ void UHarmonyLinkGraphics::OnWorldEnd(UWorld* World) UE_LOG(LogHarmonyLink, Error, TEXT("World Already destroyed")) return; } + + if (!World->IsGameWorld()) + { + return; + } if(World->GetTimerManager().TimerExists(_TickTimerHandle)) { diff --git a/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h b/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h index 0147020..d6e3418 100644 --- a/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h +++ b/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h @@ -22,7 +22,6 @@ class HARMONYLINK_API UHarmonyLinkGraphics : public UBlueprintFunctionLibrary GENERATED_BODY() public: - UHarmonyLinkGraphics(); virtual ~UHarmonyLinkGraphics() override; UPROPERTY(BlueprintAssignable)