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

#include <LevelBootstrapper.h>

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

Public 멤버 함수

virtual void BeginPlay () override
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 
void OnLevelRuleDataRegistered (ULevelRuleData *LevelRuleData)
 
void OnLevelPlayerPlacedRegistered (ULevelPlayerPlacer *LevelPlayerPlacer)
 

Public 속성

bool bDebugMode = false
 
TSubclassOf< ULevelPlayerPlacerPlayerPlacer
 
TObjectPtr< ULevelRuleDataLevelRule
 
FGameplayTag DebugLevelBundleTag
 

Private 멤버 함수

void SetLevelRuleData (ULevelRuleData *LevelRuleData)
 
void SetPlayerPlacer (ULevelPlayerPlacer *LevelPlayerPlacer, UWorld *World)
 

Private 속성

TWeakObjectPtr< ULevelStreamingSubsystemLevelStreamingSubsystem
 

멤버 함수 문서화

◆ BeginPlay()

void ALevelBootstrapper::BeginPlay ( )
overridevirtual
13{
14 Super::BeginPlay();
15
16 LevelStreamingSubsystem = GetWorld()->GetGameInstance()->GetSubsystem<ULevelStreamingSubsystem>();
17 bool bIsAvailable = LevelStreamingSubsystem.IsValid() && LevelStreamingSubsystem->IsAvailable();
18
19
20 if (bDebugMode && LevelRule)
21 {
23 }
24 else if (bIsAvailable)
25 {
26 LevelStreamingSubsystem->OnLevelLoadedInMemory.AddDynamic(this, &ThisClass::SetLevelRuleData);
27 }
28 else //설정도 안됐고, LevelStreamingSubsystem에도 등록이 되어 있지 않다면 에러를 발생시킨다.
29 {
30 LOG_ERROR(LogCKLevel, "%s를 불러오지 못했습니다. ", NAMEOF(ULevelStreamingSubsystem));
31 }
32
33
35 {
36 this->SetPlayerPlacer(NewObject<ULevelPlayerPlacer>(this, PlayerPlacer), GetWorld());
37 }
38 else if (bIsAvailable)
39 {
40 LevelStreamingSubsystem->OnPlacePlayerTheWorld.AddDynamic(this, &ThisClass::SetPlayerPlacer);
41 }
42 else //설정도 안됐고, LevelStreamingSubsystem에도 등록이 되어 있지 않다면 에러를 발생시킨다.
43 {
44 LOG_ERROR(LogCKLevel, "%s를 불러오지 못했습니다. ", NAMEOF(ULevelStreamingSubsystem));
45 }
46}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:32
#define NAMEOF(Type)
Definition CK_UE.h:26
void SetPlayerPlacer(ULevelPlayerPlacer *LevelPlayerPlacer, UWorld *World)
Definition LevelBootstrapper.cpp:102
TWeakObjectPtr< ULevelStreamingSubsystem > LevelStreamingSubsystem
Definition LevelBootstrapper.h:44
TObjectPtr< ULevelRuleData > LevelRule
Definition LevelBootstrapper.h:55
void SetLevelRuleData(ULevelRuleData *LevelRuleData)
Definition LevelBootstrapper.cpp:69
TSubclassOf< ULevelPlayerPlacer > PlayerPlacer
Definition LevelBootstrapper.h:52
bool bDebugMode
Definition LevelBootstrapper.h:49
Definition LevelStreamingSubsystem.h:32
FORCEINLINE bool IsAvailable() const
Definition LevelStreamingSubsystem.h:44
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ EndPlay()

void ALevelBootstrapper::EndPlay ( const EEndPlayReason::Type  EndPlayReason)
overridevirtual
50{
51 Super::EndPlay(EndPlayReason);
52
53 if (bDebugMode == false || DebugLevelBundleTag.IsValid() == false)
54 {
55 return;
56 }
57
58 UDataBundleRegistry* BundleRegistry = GetWorld()->GetGameInstance()->GetSubsystem<UDataBundleRegistry>();
59
60 if (BundleRegistry == nullptr)
61 {
62 return;
63 }
64
65 BundleRegistry->Release(DebugLevelBundleTag);
66}
FGameplayTag DebugLevelBundleTag
Definition LevelBootstrapper.h:59
DataBundle의 로드/언로드를 관리하는 GameInstance 서브시스템.
Definition DataBundleRegistry.h:45
void Release(FGameplayTag BundleTag)
번들을 언로드합니다 (bPersistent 번들 제외).
Definition DataBundleRegistry.cpp:269
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelPlayerPlacedRegistered()

void ALevelBootstrapper::OnLevelPlayerPlacedRegistered ( ULevelPlayerPlacer LevelPlayerPlacer)
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelRuleDataRegistered()

void ALevelBootstrapper::OnLevelRuleDataRegistered ( ULevelRuleData LevelRuleData)
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetLevelRuleData()

void ALevelBootstrapper::SetLevelRuleData ( ULevelRuleData LevelRuleData)
private
70{
71 if (LevelStreamingSubsystem.IsValid())
72 {
73 LevelStreamingSubsystem->OnLevelLoadedInMemory.RemoveDynamic(this, &ThisClass::SetLevelRuleData);
74 }
75
76 LevelRule = LevelRuleData;
77
78 if (bDebugMode && DebugLevelBundleTag.IsValid())
79 {
80 UDataBundleRegistry* BundleRegistry = GetWorld()->GetGameInstance()->GetSubsystem<UDataBundleRegistry>();
81
82 if (BundleRegistry)
83 {
84 BundleRegistry->RequestLoad(DebugLevelBundleTag);
85 }
86 }
87
89
90 if (UWaveManagerSubsystem* WaveManagerSubsystem = GetWorld()->GetSubsystem<UWaveManagerSubsystem>())
91 {
92 WaveManagerSubsystem->SetLevelRule(LevelRuleData);
93 //WaveManagerSubsystem->StartWaves();
94 }
95 else
96 {
97 LOG_WARNING(LogCKLevel, "%s 월드 로컬 시스템을 가져오는 것에 실패했습니다. ", NAMEOF(UWaveManagerSubsystem));
98 }
99}
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:31
void OnLevelRuleDataRegistered(ULevelRuleData *LevelRuleData)
void RequestLoad(FGameplayTag BundleTag, TFunction< void()> OnReady=nullptr)
번들을 비동기 로드합니다. 로드 완료 시 OnReady 콜백을 호출합니다.
Definition DataBundleRegistry.cpp:141
Definition WaveManagerSubsystem.h:33
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetPlayerPlacer()

void ALevelBootstrapper::SetPlayerPlacer ( ULevelPlayerPlacer LevelPlayerPlacer,
UWorld *  World 
)
private
103{
104 if (LevelStreamingSubsystem.IsValid())
105 {
106 LevelStreamingSubsystem->OnPlacePlayerTheWorld.RemoveDynamic(this, &ThisClass::SetPlayerPlacer);
107 }
108
109 if (LevelPlayerPlacer)
110 {
111 LevelPlayerPlacer->PlacePlayer(World);
112 this->OnLevelPlayerPlacedRegistered(LevelPlayerPlacer);
113 }
114 else
115 {
116 LOG_WARNING(LogCKLevel, "%s Player Placer을 생성 또는 가져오는 것에 실패했습니다. ", NAMEOF(ULevelPlayerPlacer));
117 }
118}
void OnLevelPlayerPlacedRegistered(ULevelPlayerPlacer *LevelPlayerPlacer)
Definition LevelPlayerPlacer.h:14
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ bDebugMode

bool ALevelBootstrapper::bDebugMode = false

◆ DebugLevelBundleTag

FGameplayTag ALevelBootstrapper::DebugLevelBundleTag

◆ LevelRule

TObjectPtr<ULevelRuleData> ALevelBootstrapper::LevelRule

◆ LevelStreamingSubsystem

TWeakObjectPtr<ULevelStreamingSubsystem> ALevelBootstrapper::LevelStreamingSubsystem
private

◆ PlayerPlacer

TSubclassOf<ULevelPlayerPlacer> ALevelBootstrapper::PlayerPlacer

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