Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UCameraHitStopProcessor 클래스 참조

#include <CameraHitStopProcessor.h>

UCameraHitStopProcessor에 대한 상속 다이어그램 :
Inheritance graph
UCameraHitStopProcessor에 대한 협력 다이어그램:
Collaboration graph

Public 속성

float HitStopTimeScale = 1.0f
 
TObjectPtr< UCurveFloat > EvaluateCurve
 
TObjectPtr< UWorld > CurrentWorld
 

Protected 멤버 함수

virtual void OnStart (const FCameraEffect &CameraEffect, APlayerController *PC) override
 
virtual void OnUpdate (const FCameraEffect &CameraEffect, APlayerController *PC) override
 
virtual void OnEnd (const FCameraEffect &CameraEffect, APlayerController *PC) override
 
- UCameraEffectProcessor(으)로부터 상속된 Protected 멤버 함수
virtual void OnInitialize (const FCameraEffect &CameraEffect, APlayerController *PC)
 
virtual void OnDeinitialize (const FCameraEffect &CameraEffect, APlayerController *PC)
 

Private 속성

float StartRealTime = 0.0f
 
float DurationMul = 0.0f
 

추가로 상속된 멤버들

- UCameraEffectProcessor(으)로부터 상속된 Public 멤버 함수
void Initialize (const FCameraEffect &CameraEffect, APlayerController *PC)
 
void Deinitialize (const FCameraEffect &CameraEffect, APlayerController *PC)
 
void Start (const FCameraEffect &CameraEffect, APlayerController *PC)
 
bool Update (const FCameraEffect &CameraEffect, APlayerController *PC)
 
void End (const FCameraEffect &CameraEffect, APlayerController *PC)
 
FORCEINLINE ECameraEffectProcessorState GetCurrentState () const
 
FORCEINLINE int32 GetActivatedTickCount () const
 
FORCEINLINE void ResetActivatedTickCount ()
 

멤버 함수 문서화

◆ OnEnd()

void UCameraHitStopProcessor::OnEnd ( const FCameraEffect CameraEffect,
APlayerController *  PC 
)
overrideprotectedvirtual

UCameraEffectProcessor(으)로부터 재구현되었습니다.

62{
63 // 자기가 늦춰둔 시간을 되돌린다.
64 // 아직 멈춰 있어야 하는 쪽은 OnTimeScaleRaised 를 받아 다시 주장한다.
65 if (UTimeManagementSubsystem* TimeSubsystem = CurrentWorld->GetSubsystem<UTimeManagementSubsystem>())
66 {
67 TimeSubsystem->ResetTimeScale();
68 }
69
70 if (AGameCameraManager* CamManager = Cast<AGameCameraManager>(PC->PlayerCameraManager))
71 {
72 CamManager->SetHitStopActive(false);
73 }
74
75 Super::OnEnd(CameraEffect, PC);
76 CurrentWorld = nullptr;
77}
Definition GameCameraManager.h:28
TObjectPtr< UWorld > CurrentWorld
Definition CameraHitStopProcessor.h:30
Definition TimeManagementSubsystem.h:27

◆ OnStart()

void UCameraHitStopProcessor::OnStart ( const FCameraEffect CameraEffect,
APlayerController *  PC 
)
overrideprotectedvirtual

UCameraEffectProcessor(으)로부터 재구현되었습니다.

17{
18 Super::OnStart(CameraEffect, PC);
19
20 CurrentWorld = PC->GetWorld();
21 check(CurrentWorld);
22
23 StartRealTime = CurrentWorld->GetRealTimeSeconds();
24 const float Duration = CameraEffect.EndSeconds - CameraEffect.StartSeconds;
25 DurationMul = FMath::IsNearlyZero(Duration) ? 0.0f : (1.0f / Duration);
27
28 if (AGameCameraManager* CamManager = Cast<AGameCameraManager>(PC->PlayerCameraManager))
29 {
30 CamManager->SetHitStopActive(true);
31 }
32
33 if (UTimeManagementSubsystem* TimeSubsystem = CurrentWorld->GetSubsystem<UTimeManagementSubsystem>())
34 {
35 TimeSubsystem->ApplyTimeScale(HitStopTimeScale);
36 }
37}
constexpr float GMinimum_Time_Scale
Definition CameraHitStopProcessor.cpp:13
float HitStopTimeScale
Definition CameraHitStopProcessor.h:24
float StartRealTime
Definition CameraHitStopProcessor.h:33
float DurationMul
Definition CameraHitStopProcessor.h:34
float StartSeconds
Definition CameraEffector.h:31
float EndSeconds
Definition CameraEffector.h:34

◆ OnUpdate()

void UCameraHitStopProcessor::OnUpdate ( const FCameraEffect CameraEffect,
APlayerController *  PC 
)
overrideprotectedvirtual

UCameraEffectProcessor(으)로부터 재구현되었습니다.

41{
42 Super::OnUpdate(CameraEffect, PC);
43
44 if (EvaluateCurve == nullptr)
45 {
46 return;
47 }
48
49 const float ElapsedTimeRatio = (CurrentWorld->GetRealTimeSeconds() - StartRealTime) * DurationMul;
50 const float CurveValue = EvaluateCurve->GetFloatValue(FMath::Clamp(ElapsedTimeRatio, 0.0f, 1.0f));
51
52 HitStopTimeScale = FMath::Clamp(HitStopTimeScale * CurveValue, GMinimum_Time_Scale, 1.0f);
53
54 if (UTimeManagementSubsystem* TimeSubsystem = CurrentWorld->GetSubsystem<UTimeManagementSubsystem>())
55 {
56 TimeSubsystem->ApplyTimeScale(HitStopTimeScale);
57 }
58}
TObjectPtr< UCurveFloat > EvaluateCurve
Definition CameraHitStopProcessor.h:27

멤버 데이터 문서화

◆ CurrentWorld

TObjectPtr<UWorld> UCameraHitStopProcessor::CurrentWorld

◆ DurationMul

float UCameraHitStopProcessor::DurationMul = 0.0f
private

◆ EvaluateCurve

TObjectPtr<UCurveFloat> UCameraHitStopProcessor::EvaluateCurve

◆ HitStopTimeScale

float UCameraHitStopProcessor::HitStopTimeScale = 1.0f

◆ StartRealTime

float UCameraHitStopProcessor::StartRealTime = 0.0f
private

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: