-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCameraPlayerController.cpp
More file actions
92 lines (69 loc) · 2.39 KB
/
CameraPlayerController.cpp
File metadata and controls
92 lines (69 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "CameraPlayerController.h"
#include "CameraManager.h"
#include "GameFramework/PlayerController.h"
#include "ObservationPlayerCameraManager.h"
#include "Kismet/GameplayStatics.h"
ACameraPlayerController::ACameraPlayerController()
{
PlayerCameraManagerClass = AObservationPlayerCameraManager::StaticClass();
}
void ACameraPlayerController::SetupInputComponent()
{
Super::SetupInputComponent();
// Bind actions
InputComponent->BindAction("SwitchCamera1", IE_Pressed, this, &ACameraPlayerController::SwitchToNextCamera);
InputComponent->BindAction("SwitchCamera2", IE_Pressed, this, &ACameraPlayerController::SwitchToPreviousCamera);
// Find CameraManager from PlayerController
CameraManager = Cast<AObservationPlayerCameraManager>(PlayerCameraManager);
if (CameraManager)
{
UE_LOG(LogTemp, Warning, TEXT("CameraManager found %s"), *CameraManager->GetName());
}
else
{
UE_LOG(LogTemp, Error, TEXT("CameraManager not found or cast failed"));
}
}
void ACameraPlayerController::UpdateTimer()
{
ElapsedTime += 1.0f; // 초 단위로 증가
// 시간을 HH:MM:SS 형식으로 변환
int32 ElapsedTimeInt = FMath::FloorToInt(ElapsedTime);
//int32 Hours = ElapsedTimeInt / 3600;
int32 Minutes = (ElapsedTimeInt / 60) % 60;
int32 Seconds = ElapsedTimeInt % 60;
// 타이머 텍스트 업데이트
TimerText = FString::Printf(TEXT("%02d:%02d"), Minutes, Seconds);
}
float ACameraPlayerController::CurrentCamera()
{
return CameraManager->CurrentCamera();
}
float ACameraPlayerController::GetElapsedTime() const
{
return ElapsedTime;
}
void ACameraPlayerController::SwitchToPreviousCamera()
{
if(CameraManager)
{
CameraManager->SwitchToPreviousCamera();
UE_LOG(LogTemp, Warning, TEXT("Switched Camera"));
}
}
void ACameraPlayerController::SwitchToNextCamera()
{
if (CameraManager)
{
CameraManager->SwitchToNextCamera();
UE_LOG(LogTemp, Warning, TEXT("Switched Camera"));
}
}
void ACameraPlayerController::BeginPlay()
{
Super::BeginPlay();
// 타이머 초기화
ElapsedTime = 0.0f;
// 타이머 이벤트 설정 (매 1초마다 UpdateTimer 함수 호출)
GetWorld()->GetTimerManager().SetTimer(TimerHandle, this, &ACameraPlayerController::UpdateTimer, 1.0f, true, 2.5f);
}