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

#include <TimeManagementSubsystem.h>

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

Public 멤버 함수

virtual void Deinitialize () override
 
void ApplyTimeScale (float TimeScale, bool bForce=false)
 
void ResetTimeScale ()
 
FORCEINLINE float GetCurrentTimeScale () const
 
FORCEINLINE FOnTimeScaleRaised & GetOnTimeScaleRaised ()
 

Private 멤버 함수

void SetTimeScaleInternal (float NewTimeScale)
 

Private 속성

FOnTimeScaleRaised OnTimeScaleRaised
 
float CurrentTimeScale = 1.0f
 
uint8 bBroadcasting: 1 = false
 

상세한 설명

전역 시간 배율의 단일 소유자.

시간을 건드리는 쪽(카메라 이펙트, 히트스톱, UI 레이어 등)은 서로를 알 필요 없이 자기가 원하는 배율만 요청하고, 합치는 규칙은 이 서브시스템이 정한다.

규칙

  • ApplyTimeScale 은 지금 값보다 느린(작은) 요청만 반영한다.
  • bForce = true 면 지금 값보다 빨라도 그대로 적용한다. 이펙트가 끝나고 되돌릴 때 쓴다.
  • 강제로 배율이 올라가면 OnTimeScaleRaised 를 쏜다. 정지를 유지해야 하는 쪽은 여기에 붙어 자기 요구를 다시 주장하면 된다.

멤버 함수 문서화

◆ ApplyTimeScale()

void UTimeManagementSubsystem::ApplyTimeScale ( float  TimeScale,
bool  bForce = false 
)
21{
22 // 더 느린 요청만 받는다. 같은 프레임에 여러 쪽이 요청해도 가장 느린 값이 남는다.
23 if (bForce == false && TimeScale >= CurrentTimeScale)
24 {
25 return;
26 }
27
28 SetTimeScaleInternal(TimeScale);
29}
float CurrentTimeScale
Definition TimeManagementSubsystem.h:59
void SetTimeScaleInternal(float NewTimeScale)
Definition TimeManagementSubsystem.cpp:38
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Deinitialize()

void UTimeManagementSubsystem::Deinitialize ( )
overridevirtual
10{
11 // 느려진 채로 월드가 정리되면 다음 월드까지 그 상태가 보일 수 있다.
13
14 OnTimeScaleRaised.Clear();
15
16 Super::Deinitialize();
17}
FOnTimeScaleRaised OnTimeScaleRaised
Definition TimeManagementSubsystem.h:57
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ GetCurrentTimeScale()

FORCEINLINE float UTimeManagementSubsystem::GetCurrentTimeScale ( ) const
inline
44 {
45 return CurrentTimeScale;
46 }

◆ GetOnTimeScaleRaised()

FORCEINLINE FOnTimeScaleRaised & UTimeManagementSubsystem::GetOnTimeScaleRaised ( )
inline
49 {
50 return OnTimeScaleRaised;
51 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ResetTimeScale()

void UTimeManagementSubsystem::ResetTimeScale ( )
33{
35}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetTimeScaleInternal()

void UTimeManagementSubsystem::SetTimeScaleInternal ( float  NewTimeScale)
private
39{
40 if (FMath::IsNearlyEqual(CurrentTimeScale, NewTimeScale))
41 {
42 return;
43 }
44
45 const bool bRaised = NewTimeScale > CurrentTimeScale;
46
47 CurrentTimeScale = NewTimeScale;
48 UGameplayStatics::SetGlobalTimeDilation(this, CurrentTimeScale);
49
50 if (bRaised == false || bBroadcasting)
51 {
52 return;
53 }
54
55 // 시간이 풀렸다. 아직 멈춰 있어야 하는 쪽이 다시 주장할 기회를 준다.
56 bBroadcasting = true;
58 bBroadcasting = false;
59}
uint8 bBroadcasting
Definition TimeManagementSubsystem.h:62
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ bBroadcasting

uint8 UTimeManagementSubsystem::bBroadcasting
private

◆ CurrentTimeScale

float UTimeManagementSubsystem::CurrentTimeScale = 1.0f
private

◆ OnTimeScaleRaised

FOnTimeScaleRaised UTimeManagementSubsystem::OnTimeScaleRaised
private

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