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

#include <StageFlowDefinition.h>

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

Public 멤버 함수

virtual void OnLevelLoaded (ULevel *NewLevel, const ULevelStreamingData *LevelStreamingData) final
 
virtual void OnLevelUnloaded () final
 
virtual void OnLevelStreamingStarted () final
 
virtual void OnLevelStreamingEnded () final
 
void OnPlayerWeaponChanged (FGameplayTag PreviousWeaponTag, FGameplayTag NewWeaponTag)
 
FORCEINLINE ULevel * GetStreamedLevel () const
 
FORCEINLINE AMainPlayerCharacterGetPlayer () const
 
FORCEINLINE ULevelStreamingDataGetStreamingData () const
 

정적 Public 멤버 함수

static AUStageFlowDefinitionGetStageFlowDefinition (const ULevel *CurrentLoadedLevel, ULevelStreamingData *Data)
 

Public 속성

TWeakObjectPtr< AMainPlayerCharacterPlayer
 
TWeakObjectPtr< UWorld > CachedWorld
 
TWeakObjectPtr< ULevel > CurrentLevel
 
TObjectPtr< ULevelStreamingDataStreamingData
 

Protected 멤버 함수

virtual void BeginPlay () override
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 
void OnWaveReadyToSpawn (const FWaveDataCollection &SpawnData)
 
void OnWaveStarted (const FWaveDataCollection &WaveDataCollection, const int32 CurrentWaveIndex)
 
void OnWaveCleared (const FWaveDataCollection &WaveDataCollection, const int32 ClearedWaveIndex, const int32 NextWaveIndex)
 
void OnAllWavesCleared ()
 
void OnLevelLoaded_Internal (const ULevelStreamingData *LevelStreamingData)
 
void OnLevelUnloaded_Internal ()
 
void OnLevelStreamingStarted_Internal ()
 
void OnLevelStreamingEnded_Internal ()
 
void OnWaveReadyToSpawn_Internal (const FWaveDataCollection &SpawnData)
 
void OnWaveStarted_Internal (const FWaveDataCollection &WaveDataCollection, const int32 CurrentWaveIndex)
 
void OnWaveCleared_Internal (const FWaveDataCollection &WaveDataCollection, const int32 ClearedWaveIndex, const int32 NextWaveIndex)
 
void OnAllWavesCleared_Internal ()
 
void OnPlayerWeaponChanged_Internal (FGameplayTag PreviousWeaponTag, FGameplayTag NewWeaponTag)
 

상세한 설명

스테이지별 레벨 스트리밍 생명주기를 블루프린트로 확장하기 위한 베이스 클래스. StageDictionary의 StageFlowDefinitionClass에 설정하면, StageManagementSubsystem이 자동으로 인스턴스를 생성하고 콜백을 전달합니다.

멤버 함수 문서화

◆ BeginPlay()

void AUStageFlowDefinition::BeginPlay ( )
overrideprotectedvirtual
133{
134 Super::BeginPlay();
135 LOG_INFO(LogCK, "Begin Play");
136}
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38

◆ EndPlay()

void AUStageFlowDefinition::EndPlay ( const EEndPlayReason::Type  EndPlayReason)
overrideprotectedvirtual
125{
126 Super::EndPlay(EndPlayReason);
127 LOG_INFO(LogCK, "End Play");
129}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ GetPlayer()

FORCEINLINE AMainPlayerCharacter * AUStageFlowDefinition::GetPlayer ( ) const
inline
125 {
126 return Player.Get();
127 }
TWeakObjectPtr< AMainPlayerCharacter > Player
Definition StageFlowDefinition.h:136

◆ GetStageFlowDefinition()

AUStageFlowDefinition * AUStageFlowDefinition::GetStageFlowDefinition ( const ULevel *  CurrentLoadedLevel,
ULevelStreamingData Data 
)
static
16{
17 checkf(CurrentLoadedLevel, TEXT("Streaming must be valid."))
18 checkf(Data, TEXT("Data must be valid."))
19
20 ULevelStreamingData* StreamingData = CopyTemp(Data);
21 check(StreamingData);
22
23 ALevelScriptActor* ScriptActor = CurrentLoadedLevel->GetLevelScriptActor();
24 checkf(ScriptActor, TEXT("%s를 가져올 수 없습니다. "), NAMEOF(ALevelScriptActor));
25
26 AUStageFlowDefinition* Def = Cast<AUStageFlowDefinition>(ScriptActor);
27
28 if (Def == nullptr)
29 {
30 LOG_ERROR(LogCK, "%s을 %s로 변환할 수 없습니다. ", *ScriptActor->GetName(), NAMEOF(AUStageFlowDefinition));
31 return nullptr;
32 }
33
34 Def->StreamingData = StreamingData;
35
36 return Def;
37}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define NAMEOF(Type)
Definition CK_UE.h:30
Definition StageFlowDefinition.h:27
TObjectPtr< ULevelStreamingData > StreamingData
Definition StageFlowDefinition.h:145
Definition LevelStreamingData.h:19
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetStreamedLevel()

FORCEINLINE ULevel * AUStageFlowDefinition::GetStreamedLevel ( ) const
inline

현재 로드된 서브레벨(ULevel)을 반환합니다.

119 {
120 return CurrentLevel.Get();
121 }
TWeakObjectPtr< ULevel > CurrentLevel
Definition StageFlowDefinition.h:142

◆ GetStreamingData()

FORCEINLINE ULevelStreamingData * AUStageFlowDefinition::GetStreamingData ( ) const
inline
131 {
132 return StreamingData.Get();
133 }

◆ OnAllWavesCleared()

void AUStageFlowDefinition::OnAllWavesCleared ( )
protected
168{
169 LOG_INFO(LogCK, "성공적으로 호출했습니다. ");
171}
void OnAllWavesCleared_Internal()
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnAllWavesCleared_Internal()

void AUStageFlowDefinition::OnAllWavesCleared_Internal ( )
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelLoaded()

void AUStageFlowDefinition::OnLevelLoaded ( ULevel *  NewLevel,
const ULevelStreamingData LevelStreamingData 
)
finalvirtual

IStreamingEventListenerInterface를 구현.

57{
58 LOG_INFO(LogCK, "레벨이 로드되었습니다. ");
59
60 CurrentLevel = NewLevel;
61
62 if (NewLevel)
63 {
64 CachedWorld = NewLevel->GetWorld();
65 }
66
67 const UWorld* World = CachedWorld.Get();
68 check(World);
69
70 if (const APlayerController* PC = World->GetFirstPlayerController())
71 {
72 Player = PC->GetPawn<AMainPlayerCharacter>();
73 }
74
75 UStageManagementSubsystem* StageMgr = World->GetSubsystem<UStageManagementSubsystem>();
76
77 if (StageMgr == nullptr)
78 {
79 LOG_WARNING(LogCK, "%s를 찾지 못했습니다. ", NAMEOF(UStageManagementSubsystem));
80 return;
81 }
82
84 StageMgr->OnWaveStarted.AddDynamic(this, &AUStageFlowDefinition::OnWaveStarted);
85 StageMgr->OnWaveCleared.AddDynamic(this, &AUStageFlowDefinition::OnWaveCleared);
87
88 OnLevelLoaded_Internal(LevelStreamingData);
89}
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39
Definition MainPlayerCharacter.h:39
void OnWaveCleared(const FWaveDataCollection &WaveDataCollection, const int32 ClearedWaveIndex, const int32 NextWaveIndex)
Definition StageFlowDefinition.cpp:40
void OnWaveReadyToSpawn(const FWaveDataCollection &SpawnData)
Definition StageFlowDefinition.cpp:160
void OnLevelLoaded_Internal(const ULevelStreamingData *LevelStreamingData)
TWeakObjectPtr< UWorld > CachedWorld
Definition StageFlowDefinition.h:139
void OnWaveStarted(const FWaveDataCollection &WaveDataCollection, const int32 CurrentWaveIndex)
Definition StageFlowDefinition.cpp:48
void OnAllWavesCleared()
Definition StageFlowDefinition.cpp:167
Definition StageManagementSubsystem.h:147
FOnWaveCleared OnWaveCleared
Definition StageManagementSubsystem.h:239
FOnWaveStarted OnWaveStarted
Definition StageManagementSubsystem.h:236
FOnAllWavesCleared OnAllWavesCleared
Definition StageManagementSubsystem.h:242
FOnWaveManagerReadyToSpawning ReadyToSpawn
Definition StageManagementSubsystem.h:233
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelLoaded_Internal()

void AUStageFlowDefinition::OnLevelLoaded_Internal ( const ULevelStreamingData LevelStreamingData)
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelStreamingEnded()

void AUStageFlowDefinition::OnLevelStreamingEnded ( )
finalvirtual

IStreamingEventListenerInterface를 구현.

147{
148 LOG_INFO(LogCK, "성공적으로 호출했습니다. ");
150}
void OnLevelStreamingEnded_Internal()
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelStreamingEnded_Internal()

void AUStageFlowDefinition::OnLevelStreamingEnded_Internal ( )
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelStreamingStarted()

void AUStageFlowDefinition::OnLevelStreamingStarted ( )
finalvirtual

IStreamingEventListenerInterface를 구현.

140{
141 LOG_INFO(LogCK, "성공적으로 호출했습니다. ");
143}
void OnLevelStreamingStarted_Internal()
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelStreamingStarted_Internal()

void AUStageFlowDefinition::OnLevelStreamingStarted_Internal ( )
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelUnloaded()

void AUStageFlowDefinition::OnLevelUnloaded ( )
finalvirtual

IStreamingEventListenerInterface를 구현.

93{
94 const UWorld* World = CachedWorld.Get();
95
96 if (World == nullptr)
97 {
98 World = GetWorld();
99 }
100
101 if (World == nullptr)
102 {
103 LOG_WARNING(LogCK, "World가 없어 레벨 언로드 정리를 건너뜁니다.");
104 return;
105 }
106
107 UStageManagementSubsystem* StageMgr = World->GetSubsystem<UStageManagementSubsystem>();
108
109 if (StageMgr == nullptr)
110 {
111 LOG_WARNING(LogCK, "%s를 찾지 못했습니다. ", NAMEOF(UStageManagementSubsystem));
112 return;
113 }
114
115 StageMgr->ReadyToSpawn.RemoveDynamic(this, &AUStageFlowDefinition::OnWaveReadyToSpawn);
116 StageMgr->OnWaveStarted.RemoveDynamic(this, &AUStageFlowDefinition::OnWaveStarted);
117 StageMgr->OnWaveCleared.RemoveDynamic(this, &AUStageFlowDefinition::OnWaveCleared);
118 StageMgr->OnAllWavesCleared.RemoveDynamic(this, &AUStageFlowDefinition::OnAllWavesCleared);
119
120 LOG_INFO(LogCK, "레벨이 '언'로드되었습니다. ");
121}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnLevelUnloaded_Internal()

void AUStageFlowDefinition::OnLevelUnloaded_Internal ( )
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnPlayerWeaponChanged()

void AUStageFlowDefinition::OnPlayerWeaponChanged ( FGameplayTag  PreviousWeaponTag,
FGameplayTag  NewWeaponTag 
)
154{
155 LOG_INFO(LogCK, "무기를 변경하였습니다. %s -> %s", *PreviousWeaponTag.ToString(), *NewWeaponTag.ToString())
156 OnPlayerWeaponChanged_Internal(PreviousWeaponTag, NewWeaponTag);
157}
void OnPlayerWeaponChanged_Internal(FGameplayTag PreviousWeaponTag, FGameplayTag NewWeaponTag)
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnPlayerWeaponChanged_Internal()

void AUStageFlowDefinition::OnPlayerWeaponChanged_Internal ( FGameplayTag  PreviousWeaponTag,
FGameplayTag  NewWeaponTag 
)
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnWaveCleared()

void AUStageFlowDefinition::OnWaveCleared ( const FWaveDataCollection WaveDataCollection,
const int32  ClearedWaveIndex,
const int32  NextWaveIndex 
)
protected
41{
42 LOG_INFO(LogCK, "성공적으로 호출했습니다. ");
43
44 OnWaveCleared_Internal(WaveDataCollection, ClearedWaveIndex, NextWaveIndex);
45}
void OnWaveCleared_Internal(const FWaveDataCollection &WaveDataCollection, const int32 ClearedWaveIndex, const int32 NextWaveIndex)
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnWaveCleared_Internal()

void AUStageFlowDefinition::OnWaveCleared_Internal ( const FWaveDataCollection WaveDataCollection,
const int32  ClearedWaveIndex,
const int32  NextWaveIndex 
)
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnWaveReadyToSpawn()

void AUStageFlowDefinition::OnWaveReadyToSpawn ( const FWaveDataCollection SpawnData)
protected
161{
162 LOG_INFO(LogCK, "성공적으로 호출했습니다. ");
164}
void OnWaveReadyToSpawn_Internal(const FWaveDataCollection &SpawnData)
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnWaveReadyToSpawn_Internal()

void AUStageFlowDefinition::OnWaveReadyToSpawn_Internal ( const FWaveDataCollection SpawnData)
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnWaveStarted()

void AUStageFlowDefinition::OnWaveStarted ( const FWaveDataCollection WaveDataCollection,
const int32  CurrentWaveIndex 
)
protected
49{
50 LOG_INFO(LogCK, "성공적으로 호출했습니다. ");
51
52 OnWaveStarted_Internal(WaveDataCollection, CurrentWaveIndex);
53}
void OnWaveStarted_Internal(const FWaveDataCollection &WaveDataCollection, const int32 CurrentWaveIndex)
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnWaveStarted_Internal()

void AUStageFlowDefinition::OnWaveStarted_Internal ( const FWaveDataCollection WaveDataCollection,
const int32  CurrentWaveIndex 
)
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ CachedWorld

TWeakObjectPtr<UWorld> AUStageFlowDefinition::CachedWorld

◆ CurrentLevel

TWeakObjectPtr<ULevel> AUStageFlowDefinition::CurrentLevel

◆ Player

TWeakObjectPtr<AMainPlayerCharacter> AUStageFlowDefinition::Player

◆ StreamingData

TObjectPtr<ULevelStreamingData> AUStageFlowDefinition::StreamingData

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