diff --git a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp index 88a88e682745d372517add4c670e1de0858b8810..36d9717e6c75d2e2122394a69ed1ae9cbf24d1b3 100644 --- a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp +++ b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp @@ -133,16 +133,18 @@ void ACAVEOverlayController::BeginPlay() { Super::BeginPlay(); - if (hmd_mode_ || !display_cluster_mode_) return; // Not our business + //Read situation + hmd_mode_ = GEngine->XRSystem.IsValid() && GEngine->XRSystem->IsHeadTrackingAllowed(); + display_cluster_mode_ = IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster; + //TODO: Remove. Only Debugging + UE_LOG(CAVEOverlayLog, Log, TEXT("HMD: %d, DisplayCluster %d"), hmd_mode_, display_cluster_mode_); + + if ((hmd_mode_ && !display_cluster_mode_) || !display_cluster_mode_) return; // Not our business //Actor config InputComponent->BindAction("DisplayClusterAction1", EInputEvent::IE_Pressed, this, &ACAVEOverlayController::CycleDoorType); InputComponent->BindKey(EKeys::F10, EInputEvent::IE_Pressed, this, &ACAVEOverlayController::CycleDoorType); - //Read situation - hmd_mode_ = GEngine->XRSystem.IsValid() && GEngine->XRSystem->IsHeadTrackingAllowed(); - display_cluster_mode_ = IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster; - //Determine the screentype for later usage if (IDisplayCluster::Get().GetClusterMgr()->GetNodeId().Equals(screen_main, ESearchCase::IgnoreCase)) { screen_type_ = SCREEN_MASTER; @@ -189,7 +191,7 @@ void ACAVEOverlayController::Tick(float DeltaTime) { Super::Tick(DeltaTime); - if (hmd_mode_ || !display_cluster_mode_) return; // Not our business + if ((hmd_mode_ && !display_cluster_mode_) || !display_cluster_mode_) return; // Not our business refreshPawnComponents(); if (!cave_origin_ || !shutter_glasses_) return; //Display Cluster not initialized