diff --git a/Source/UltraleapTrackingCore/Private/LeapVisualizer.cpp b/Source/UltraleapTrackingCore/Private/LeapVisualizer.cpp index 21c30e0f..6c065cb8 100644 --- a/Source/UltraleapTrackingCore/Private/LeapVisualizer.cpp +++ b/Source/UltraleapTrackingCore/Private/LeapVisualizer.cpp @@ -6,7 +6,6 @@ * between Ultraleap and you, your company or other organization. * ******************************************************************************/ - #include "LeapVisualizer.h" #include "LeapUtility.h" #include "Kismet/GameplayStatics.h" @@ -14,82 +13,74 @@ #include "HeadMountedDisplayFunctionLibrary.h" // Sets default values -ALeapVisualizer::ALeapVisualizer() - : NSPlayerAreaBounds(nullptr) - , NSPTeleportRing(nullptr) - , Root(nullptr) - , PlayerAreaBoundsComponent(nullptr) - , TeleportRingComponent(nullptr) - , LeapPawn(nullptr) - , PlayerCameraManager(nullptr) - , World(nullptr) +ALeapVisualizer::ALeapVisualizer() + : NSPlayerAreaBounds(nullptr), NSPTeleportRing(nullptr), Root(nullptr), PlayerAreaBoundsComponent(nullptr), TeleportRingComponent(nullptr), LeapPawn(nullptr), PlayerCameraManager(nullptr), World(nullptr) { - // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. - PrimaryActorTick.bCanEverTick = true; - - Root = CreateDefaultSubobject(TEXT("RootComponent")); - RootComponent = Root; - - NSPlayerAreaBounds = Cast(StaticLoadObject(UNiagaraSystem::StaticClass(), nullptr, - TEXT("NiagaraSystem'/UltraleapTracking/InteractionEngine/VFX/Leap_NS_PlayAreaBounds.Leap_NS_PlayAreaBounds'"))); - if (NSPlayerAreaBounds == nullptr) - { - UE_LOG(UltraleapTrackingLog, Error, TEXT("NSPlayerAreaBounds is nullptr in ALeapVisualizer()")); - } - - NSPTeleportRing = Cast(StaticLoadObject(UNiagaraSystem::StaticClass(), nullptr, - TEXT("NiagaraSystem'/UltraleapTracking/InteractionEngine/VFX/Leap_NS_TeleportRing.Leap_NS_TeleportRing'"))); - - if (NSPTeleportRing == nullptr) - { - UE_LOG(UltraleapTrackingLog, Error, TEXT("NSPTeleportRing is nullptr in ALeapVisualizer()")); - } - - PlayerAreaBoundsComponent = CreateDefaultSubobject(TEXT("NiagaraAreaBoundsComponent")); - TeleportRingComponent = CreateDefaultSubobject(TEXT("NiagaraTeleportRingComponent")); - - if (!PlayerAreaBoundsComponent || !TeleportRingComponent) - { - UE_LOG(UltraleapTrackingLog, Error, TEXT("NSPTeleportRing is nullptr in ALeapVisualizer()")); - } - - if (RootComponent) - { - PlayerAreaBoundsComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform); - TeleportRingComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform); - } - - PlayerAreaBoundsComponent->SetAsset(NSPlayerAreaBounds); - TeleportRingComponent->SetAsset(NSPTeleportRing); - + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + + Root = CreateDefaultSubobject(TEXT("RootComponent")); + RootComponent = Root; + + NSPlayerAreaBounds = Cast(StaticLoadObject(UNiagaraSystem::StaticClass(), nullptr, + TEXT("NiagaraSystem'/UltraleapTracking/InteractionEngine/VFX/Leap_NS_PlayAreaBounds.Leap_NS_PlayAreaBounds'"))); + if (NSPlayerAreaBounds == nullptr) + { + UE_LOG(UltraleapTrackingLog, Error, TEXT("NSPlayerAreaBounds is nullptr in ALeapVisualizer()")); + } + + NSPTeleportRing = Cast(StaticLoadObject(UNiagaraSystem::StaticClass(), nullptr, + TEXT("NiagaraSystem'/UltraleapTracking/InteractionEngine/VFX/Leap_NS_TeleportRing.Leap_NS_TeleportRing'"))); + + if (NSPTeleportRing == nullptr) + { + UE_LOG(UltraleapTrackingLog, Error, TEXT("NSPTeleportRing is nullptr in ALeapVisualizer()")); + } + + PlayerAreaBoundsComponent = CreateDefaultSubobject(TEXT("NiagaraAreaBoundsComponent")); + TeleportRingComponent = CreateDefaultSubobject(TEXT("NiagaraTeleportRingComponent")); + + if (!PlayerAreaBoundsComponent || !TeleportRingComponent) + { + UE_LOG(UltraleapTrackingLog, Error, TEXT("NSPTeleportRing is nullptr in ALeapVisualizer()")); + } + + if (RootComponent) + { + PlayerAreaBoundsComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform); + TeleportRingComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform); + } + + PlayerAreaBoundsComponent->SetAsset(NSPlayerAreaBounds); + TeleportRingComponent->SetAsset(NSPTeleportRing); } // Called when the game starts or when spawned void ALeapVisualizer::BeginPlay() { - Super::BeginPlay(); - - FVector2D PlayerArea = UHeadMountedDisplayFunctionLibrary::GetPlayAreaBounds(); - FVector PlayerVec = FVector(PlayerArea.X, PlayerArea.Y, 0.0f); - PlayerAreaBoundsComponent->SetNiagaraVariableVec3("User.PlayAreaBounds", PlayerVec); - - World = GetWorld(); - if (World == nullptr) - { - UE_LOG(UltraleapTrackingLog, Error, TEXT("World is nullptr in ALeapVisualizer::BeginPlay")); - return; - } - - LeapPawn = UGameplayStatics::GetPlayerPawn(World, 0); - if (LeapPawn == nullptr) - { - UE_LOG(UltraleapTrackingLog, Error, TEXT("LeapPawn is nullptr in ALeapVisualizer::BeginPlay")); - return; - } - PlayerCameraManager = UGameplayStatics::GetPlayerCameraManager(World, 0); - if (PlayerCameraManager == nullptr) - { - UE_LOG(UltraleapTrackingLog, Error, TEXT("PlayerCameraManager is nullptr in ALeapVisualizer::BeginPlay")); - return; - } -} \ No newline at end of file + Super::BeginPlay(); + + FVector2D PlayerArea = UHeadMountedDisplayFunctionLibrary::GetPlayAreaBounds(); + FVector PlayerVec = FVector(PlayerArea.X, PlayerArea.Y, 0.0f); + PlayerAreaBoundsComponent->SetVariableVec3(FName(*FString("User.PlayAreaBounds")), PlayerVec); + + World = GetWorld(); + if (World == nullptr) + { + UE_LOG(UltraleapTrackingLog, Error, TEXT("World is nullptr in ALeapVisualizer::BeginPlay")); + return; + } + + LeapPawn = UGameplayStatics::GetPlayerPawn(World, 0); + if (LeapPawn == nullptr) + { + UE_LOG(UltraleapTrackingLog, Error, TEXT("LeapPawn is nullptr in ALeapVisualizer::BeginPlay")); + return; + } + PlayerCameraManager = UGameplayStatics::GetPlayerCameraManager(World, 0); + if (PlayerCameraManager == nullptr) + { + UE_LOG(UltraleapTrackingLog, Error, TEXT("PlayerCameraManager is nullptr in ALeapVisualizer::BeginPlay")); + return; + } +} diff --git a/UltraleapTracking.uplugin b/UltraleapTracking.uplugin index fd9da600..5598a590 100644 --- a/UltraleapTracking.uplugin +++ b/UltraleapTracking.uplugin @@ -53,6 +53,10 @@ { "Name": "Niagara", "Enabled": true + }, + { + "Name": "OpenXR", + "Enabled": true } ] }