diff --git a/CAVEOverlay.uplugin b/CAVEOverlay.uplugin index 5fa2686e55fc777b49e1542bb9dbfac5f4a8a3f1..63a2f00daedbadd17666a869f285b3cb906ecf0c 100644 --- a/CAVEOverlay.uplugin +++ b/CAVEOverlay.uplugin @@ -3,7 +3,7 @@ "Version": 1, "VersionName": "1.0", "FriendlyName": "CAVEOverlay", - "Description": "Adds the ability to black out the CAVE Doors and display the magic tape", + "Description": "Adds the ability to black out the CAVE door and display the magic tape", "Category": "Other", "CreatedBy": "", "CreatedByURL": "", diff --git a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp index f1ab7ec0646fa161f7261162e75506bdcfc7e674..8d4bb2b137058d36550f22563312edaf13407bf4 100644 --- a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp +++ b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp @@ -43,30 +43,30 @@ ACAVEOverlayController::ACAVEOverlayController() } //Creation of subcomponents - root = CreateDefaultSubobject<USceneComponent>(TEXT("DefaultSceneRoot")); + root = CreateDefaultSubobject<USceneComponent>("DefaultSceneRoot"); SetRootComponent(root); - tape_root = CreateDefaultSubobject<USceneComponent>(TEXT("TapeRoot")); - sign_root = CreateDefaultSubobject<USceneComponent>(TEXT("SignRoot")); + tape_root = CreateDefaultSubobject<USceneComponent>("TapeRoot"); + sign_root = CreateDefaultSubobject<USceneComponent>("SignRoot"); tape_root->SetupAttachment(root); sign_root->SetupAttachment(root); //Loading of Materials and Meshes - loadAsset(TEXT("/CAVEOverlay/Stripes"), tape_material_); - loadAsset(TEXT("/CAVEOverlay/StopMaterial"), sign_material_); - loadAsset(TEXT("/CAVEOverlay/Plane"), plane_mesh_); + loadAsset("/CAVEOverlay/Stripes", tape_material_); + loadAsset("/CAVEOverlay/StopMaterial", sign_material_); + loadAsset("/CAVEOverlay/Plane", plane_mesh_); - tape_material_dynamic_ = UMaterialInstanceDynamic::Create(tape_material_, NULL); - sign_material_dynamic_ = UMaterialInstanceDynamic::Create(sign_material_, NULL); + tape_material_dynamic_ = UMaterialInstanceDynamic::Create(tape_material_, tape_root); + sign_material_dynamic_ = UMaterialInstanceDynamic::Create(sign_material_, sign_root); - tape_negative_y = createMeshComponent(FName("TapeNegY"), tape_material_dynamic_, plane_mesh_, tape_root); - tape_negative_x = createMeshComponent(FName("TapeNegX"), tape_material_dynamic_, plane_mesh_, tape_root); - tape_positive_y = createMeshComponent(FName("TapePosY"), tape_material_dynamic_, plane_mesh_, tape_root); - tape_positive_x = createMeshComponent(FName("TapePosX"), tape_material_dynamic_, plane_mesh_, tape_root); + tape_negative_y = createMeshComponent("TapeNegY", tape_material_dynamic_, plane_mesh_, tape_root); + tape_negative_x = createMeshComponent("TapeNegX", tape_material_dynamic_, plane_mesh_, tape_root); + tape_positive_y = createMeshComponent("TapePosY", tape_material_dynamic_, plane_mesh_, tape_root); + tape_positive_x = createMeshComponent("TapePosX", tape_material_dynamic_, plane_mesh_, tape_root); - sign_negative_y = createMeshComponent(FName("SignNegY"), sign_material_dynamic_, plane_mesh_, sign_root); - sign_negative_x = createMeshComponent(FName("SignNegX"), sign_material_dynamic_, plane_mesh_, sign_root); - sign_positive_y = createMeshComponent(FName("SignPosY"), sign_material_dynamic_, plane_mesh_, sign_root); - sign_positive_x = createMeshComponent(FName("SignPosX"), sign_material_dynamic_, plane_mesh_, sign_root); + sign_negative_y = createMeshComponent("SignNegY", sign_material_dynamic_, plane_mesh_, sign_root); + sign_negative_x = createMeshComponent("SignNegX", sign_material_dynamic_, plane_mesh_, sign_root); + sign_positive_y = createMeshComponent("SignPosY", sign_material_dynamic_, plane_mesh_, sign_root); + sign_positive_x = createMeshComponent("SignPosX", sign_material_dynamic_, plane_mesh_, sign_root); //Set initial Position, Rotation and Scale of Tape tape_negative_y->SetRelativeLocationAndRotation(FVector(0, -wall_distance_, 0), FRotator(0, 0, 90)); @@ -164,6 +164,9 @@ void ACAVEOverlayController::BeginPlay() player_pawn_ = Cast<AVirtualRealityPawn>(GetWorld()->GetFirstPlayerController()->GetPawn()); refreshPawnComponents(); + + //Debugging + UE_LOG(CAVEOverlayLog, Error, TEXT("Tape: %p, Sign: %p"), tape_material_dynamic_, sign_material_dynamic_); } float ACAVEOverlayController::calculateOpacityFromPosition(FVector position) { @@ -220,11 +223,14 @@ void ACAVEOverlayController::Tick(float DeltaTime) //Sign Logic UDisplayClusterSceneComponent* flystick = IDisplayCluster::Get().GetGameMgr()->GetNodeById(TEXT("flystick")); - if (flystick != nullptr) { + if (flystick) { FVector flystick_position = flystick->GetRelativeTransform().GetLocation(); bool flystick_in_door = positionInDoorOpening(flystick_position); float sign_opacity = calculateOpacityFromPosition(flystick_position); + //Debugging + UE_LOG(CAVEOverlayLog, Error, TEXT("Fly: %p, Pos: (%f,%f,%f), Opacity: %f"), flystick, flystick_position.X, flystick_position.Y, flystick_position.Z, sign_opacity); + sign_negative_x->SetRelativeLocation(FVector(-wall_distance_, flystick_position.Y, flystick_position.Z)); sign_negative_y->SetRelativeLocation(FVector(flystick_position.X, -wall_distance_, flystick_position.Z)); sign_positive_x->SetRelativeLocation(FVector(+wall_distance_, flystick_position.Y, flystick_position.Z));