diff --git a/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset b/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset index ade5e7f48de1ff08a9260496ddfc2b79198f8bae..f9fc5be564a79e954f106da527c28e363985bc02 100644 Binary files a/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset and b/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset differ diff --git a/Content/Blueprints/Screen_Blueprint.uasset b/Content/Blueprints/Screen_Blueprint.uasset index 0c2398f882a9d821fd68c1dcfccf0086af51b8b7..9466093bac18f14fd88a32adaf36509bb4841adb 100644 Binary files a/Content/Blueprints/Screen_Blueprint.uasset and b/Content/Blueprints/Screen_Blueprint.uasset differ diff --git a/Content/Blueprints/TeleportControllerBP.uasset b/Content/Blueprints/TeleportControllerBP.uasset index 605c4f66458361b8572f8e3d58720e1e1ba41265..f7deaf6c057a530dd037b9592afd28725eafde2e 100644 Binary files a/Content/Blueprints/TeleportControllerBP.uasset and b/Content/Blueprints/TeleportControllerBP.uasset differ diff --git a/Content/UI/Rotator/WhiteC.uasset b/Content/UI/Rotator/WhiteC.uasset index 62c54f236f4aba71f7e075fee9d0b00254c8c3e2..ab3f0ac770bd01ea46c571864818e92b42dfc965 100644 Binary files a/Content/UI/Rotator/WhiteC.uasset and b/Content/UI/Rotator/WhiteC.uasset differ diff --git a/Content/UI/Rotator/WhiteCC.uasset b/Content/UI/Rotator/WhiteCC.uasset index 8701046330eb3e67f9def3b01aa4341051f9d6b6..afd2a350710de0ede5c611f5dc2ea4190843f9a5 100644 Binary files a/Content/UI/Rotator/WhiteCC.uasset and b/Content/UI/Rotator/WhiteCC.uasset differ diff --git a/Content/UI/Tablet/ScreenWidget.uasset b/Content/UI/Tablet/ScreenWidget.uasset index a27d0ddf856b29e1db639ffec1dbff31531ee380..816beec95c69016b67707a8bbd957fb2db47fc71 100644 Binary files a/Content/UI/Tablet/ScreenWidget.uasset and b/Content/UI/Tablet/ScreenWidget.uasset differ diff --git a/Source/OptiX/Private/OptiXLensComponent.cpp b/Source/OptiX/Private/OptiXLensComponent.cpp index f97e2916edc6f408af6d888b73f680a64dd085c3..5420a6f45fd4d5f35ff211dc03e7317f4f42da66 100644 --- a/Source/OptiX/Private/OptiXLensComponent.cpp +++ b/Source/OptiX/Private/OptiXLensComponent.cpp @@ -244,7 +244,8 @@ void UOptiXLensComponent::UpdateCubemap(FRHICommandListImmediate & RHICmdList) void UOptiXLensComponent::CleanOptiXComponent() { - OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform); + if(OptiXContext != NULL && OptiXContext->GetGroup("top_object") != NULL) + OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform); OptiXTransform = nullptr; Super::CleanOptiXComponent(); diff --git a/Source/OptiX/Private/OptiXObjectComponent.cpp b/Source/OptiX/Private/OptiXObjectComponent.cpp index adcfd9435e7d65ebb87292d9dbbbb3b7ca269c77..e572cfe3deaa2ca6cfba7dfa9be78ed1fa14ccca 100644 --- a/Source/OptiX/Private/OptiXObjectComponent.cpp +++ b/Source/OptiX/Private/OptiXObjectComponent.cpp @@ -218,7 +218,7 @@ void UOptiXCubemapComponent::BeginPlay() continue; } - if (Itr->GetWidgetClass()->GetName().Contains("ScreenWidget")) + if (Itr->GetWidgetClass() != NULL && Itr->GetWidgetClass()->GetName().Contains("ScreenWidget")) { HideActorComponents(Itr->GetOwner()); } @@ -299,8 +299,8 @@ void UOptiXCubemapComponent::CleanOptiXComponent() // Remove all the optix stuff again here from top to bottom - - OptiXGeometryGroup->RemoveChild(OptiXGeometryInstance); + if (OptiXContext == NULL) + return; //OptiXGeometryGroup = nullptr; // This should trigger the GC and eat the object if this is the last reference OptiXGeometryInstance->RemoveFromRoot(); diff --git a/Source/OptiX/Private/OptiXTargetComponent.cpp b/Source/OptiX/Private/OptiXTargetComponent.cpp index bb5d4d307d754436fd928751dc9e1cf847823365..8669dfeb4e3b876872e5f9dba4b8fb1032eaa29b 100644 --- a/Source/OptiX/Private/OptiXTargetComponent.cpp +++ b/Source/OptiX/Private/OptiXTargetComponent.cpp @@ -207,10 +207,14 @@ void UOptiXTargetComponent::UpdateOptiXComponentVariables() void UOptiXTargetComponent::CleanOptiXComponent() { - if (OptiXContext->GetGroup("top_object") != nullptr) + if (OptiXContext == NULL) { - OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform); + Super::CleanOptiXComponent(); + return; } + + OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform); + OptiXTransform = nullptr; OptiXAcceleration = nullptr; diff --git a/Source/OptiX/Private/SelectableActorBase.cpp b/Source/OptiX/Private/SelectableActorBase.cpp index 433a720cce080ba4a0cd1da4ff240cf56dbda881..317e78746b1d05a03d2d89c68c4526da8f9b25ab 100644 --- a/Source/OptiX/Private/SelectableActorBase.cpp +++ b/Source/OptiX/Private/SelectableActorBase.cpp @@ -47,6 +47,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti TranslateX->CastShadow = 0; TranslateX->bVisibleInReflectionCaptures = false; + TranslateX->SetCanEverAffectNavigation(false); ArrowX = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ArrowX")); ArrowX->SetupAttachment(TranslateX); @@ -61,7 +62,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ArrowX->CastShadow = 0; ArrowX->bVisibleInReflectionCaptures = false; - + ArrowX->SetCanEverAffectNavigation(false); TranslateWidgetX = CreateDefaultSubobject<UWidgetComponent>(TEXT("TranslateWidgetX")); TranslateWidgetX->SetAbsolute(false, true, true); @@ -88,6 +89,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti TranslateY->CastShadow = 0; TranslateY->bVisibleInReflectionCaptures = false; + TranslateY->SetCanEverAffectNavigation(false); ArrowY = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ArrowY")); ArrowY->SetupAttachment(TranslateY); @@ -101,6 +103,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ArrowY->CastShadow = 0; ArrowY->bVisibleInReflectionCaptures = false; + ArrowY->SetCanEverAffectNavigation(false); TranslateWidgetY = CreateDefaultSubobject<UWidgetComponent>(TEXT("TranslateWidgetY")); TranslateWidgetY->SetAbsolute(false, true, true); @@ -121,7 +124,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti TranslateZ->SetGenerateOverlapEvents(false); TranslateZ->SetHiddenInGame(true); TranslateZ->SetWorldRotation(FRotator(90.f, 0.0f, 0.0f)); - + TranslateZ->SetCanEverAffectNavigation(false); TranslateZ->CastShadow = 0; TranslateZ->bVisibleInReflectionCaptures = false; @@ -134,7 +137,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ArrowZ->SetGenerateOverlapEvents(false); ArrowZ->SetHiddenInGame(true); ArrowZ->SetAbsolute(false, false, true); - + ArrowZ->SetCanEverAffectNavigation(false); ArrowZ->CastShadow = 0; ArrowZ->bVisibleInReflectionCaptures = false; @@ -163,7 +166,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ScaleH->SetGenerateOverlapEvents(false); ScaleH->SetCollisionEnabled(ECollisionEnabled::NoCollision); ScaleH->SetHiddenInGame(true); - + ScaleH->SetCanEverAffectNavigation(false); ScaleH->CastShadow = 0; ScaleH->bVisibleInReflectionCaptures = false; @@ -175,7 +178,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ScaleV->SetGenerateOverlapEvents(false); ScaleV->SetCollisionEnabled(ECollisionEnabled::NoCollision); ScaleV->SetHiddenInGame(true); - + ScaleV->SetCanEverAffectNavigation(false); ScaleV->CastShadow = 0; ScaleV->bVisibleInReflectionCaptures = false; @@ -188,7 +191,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti SupportH->SetGenerateOverlapEvents(false); SupportH->SetHiddenInGame(true); //SupportH->SetWorldLocation(FVector(25, 0, 0)); - + SupportH->SetCanEverAffectNavigation(false); SupportH->CastShadow = 0; SupportH->bVisibleInReflectionCaptures = false; @@ -201,7 +204,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti SupportSphereH->SetGenerateOverlapEvents(false); SupportSphereH->SetHiddenInGame(true); SupportSphereH->SetRelativeLocation(FVector(0, 0, 100)); - + SupportSphereH->SetCanEverAffectNavigation(false); SupportSphereH->CastShadow = 0; SupportSphereH->bVisibleInReflectionCaptures = false; @@ -223,7 +226,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti SupportV->SetGenerateOverlapEvents(false); SupportV->SetHiddenInGame(true); //SupportV->SetWorldLocation(FVector(0, 25, 0)); - + SupportV->SetCanEverAffectNavigation(false); SupportV->CastShadow = 0; SupportV->bVisibleInReflectionCaptures = false; @@ -236,7 +239,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti SupportSphereV->SetGenerateOverlapEvents(false); SupportSphereV->SetHiddenInGame(true); SupportSphereV->SetRelativeLocation(FVector(0, 0, 100)); - + SupportSphereV->SetCanEverAffectNavigation(false); SupportSphereV->CastShadow = 0; SupportSphereV->bVisibleInReflectionCaptures = false; @@ -264,7 +267,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ConnectorV->SetCollisionEnabled(ECollisionEnabled::NoCollision); ConnectorV->SetMaterial(0, MetalMaterial.Object); ConnectorV->SetMaterial(1, MetalMaterial.Object); - + ConnectorV->SetCanEverAffectNavigation(false); ConnectorV->CastShadow = 0; ConnectorV->bVisibleInReflectionCaptures = false; @@ -279,7 +282,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti Sphere->SetCollisionEnabled(ECollisionEnabled::NoCollision); Sphere->SetWorldScale3D(FVector(0.05, 0.05, 0.05)); Sphere->SetRelativeLocation(FVector(0, 0, 100)); - + Sphere->SetCanEverAffectNavigation(false); Sphere->CastShadow = 0; Sphere->bVisibleInReflectionCaptures = false; @@ -293,7 +296,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ConnectorH->SetMaterial(1, MetalMaterial.Object); ConnectorH->SetGenerateOverlapEvents(false); ConnectorH->SetCollisionEnabled(ECollisionEnabled::NoCollision); - + ConnectorH->SetCanEverAffectNavigation(false); ConnectorH->CastShadow = 0; ConnectorH->bVisibleInReflectionCaptures = false; diff --git a/Source/OptiX/Public/PickupActorInterface.h b/Source/OptiX/Public/PickupActorInterface.h index e3dd81800c4143d816c7ef1d89fa9e6b4bd418c8..eb1f72aec1ae21f797d1b4727349ea679e93fea7 100644 --- a/Source/OptiX/Public/PickupActorInterface.h +++ b/Source/OptiX/Public/PickupActorInterface.h @@ -1,3 +1,5 @@ +#pragma once + #include "PickupActorInterface.generated.h" UINTERFACE(BlueprintType)