|
Payback 0.0.1
CK Graduation Project
|
레벨 스트리밍 이펙트 체인의 순차 실행을 담당합니다. 더 자세히 ...
#include <EffectChainExecutor.h>

Public 타입 | |
| using | FContextFactory = TFunction< FLevelStreamingContext()> |
| 매 틱마다 FLevelStreamingContext를 생성하는 팩토리 타입. | |
| using | FOnChainCompleted = TFunction< void(ELevelStreamingPhase)> |
| 체인 완료 시 완료된 Phase를 인자로 호출되는 콜백 타입. | |
Public 멤버 함수 | |
| void | SetupEffects (const TArray< ULevelStreamingEffect * > &AllEffects) |
| 이펙트 목록을 Phase별로 분류해 내부 체인 맵을 구성합니다. | |
| void | ClearEffects () |
| 내부 Phase 체인 맵과 현재 실행 체인을 모두 초기화합니다. | |
| void | Start (ELevelStreamingPhase InPhase, FContextFactory InContextFactory, FOnChainCompleted InOnCompleted, bool bInDebugMode=false) |
| 이펙트 체인 실행을 시작합니다. | |
| void | Tick (float DeltaTime) |
| 현재 이펙트를 틱합니다. 완료 시 End 이벤트를 호출하고 다음 이펙트로 진행합니다. | |
| bool | IsActive () const |
| 체인이 현재 실행 중인지 여부를 반환합니다. | |
| ELevelStreamingPhase | GetPhase () const |
| 현재 Phase를 반환합니다. | |
| int32 | GetChainIndex () const |
| 현재 ChainIndex를 반환합니다. | |
Private 멤버 함수 | |
| void | Process () |
| 다음 실행 대상 이펙트를 결정하고 Start 이벤트를 호출하거나 완료 처리합니다. | |
| ELevelStreamingEffectResult | DispatchUpdate (ULevelStreamingEffect *Effect, const FLevelStreamingContext &Context) const |
| Phase에 맞는 인터페이스로 Update를 디스패치하고 결과를 반환합니다. | |
| void | DispatchEvent (ULevelStreamingEffect *Effect, ELevelStreamingEffectCallType CallType, const FLevelStreamingContext &Context) const |
| Phase에 맞는 인터페이스로 Start 또는 End 이벤트를 디스패치합니다. | |
Private 속성 | |
| TMap< ELevelStreamingPhase, TArray< ULevelStreamingEffect * > > | PhaseChains |
| Phase별로 분류된 이펙트 체인 맵. SetupEffects 호출 시 구성됩니다. | |
| TArray< ULevelStreamingEffect * > | Chain |
| 현재 실행 중인 이펙트 목록. Start 시 PhaseChains에서 복사됩니다. | |
| int32 | ChainIndex = 0 |
| 현재 실행 중인 이펙트의 인덱스. | |
| ELevelStreamingPhase | Phase = ELevelStreamingPhase::None |
| 현재 Phase. | |
| FContextFactory | ContextFactory |
| 매 틱마다 컨텍스트를 생성하는 팩토리 함수. | |
| FOnChainCompleted | OnCompleted |
| 체인 완료 시 호출될 콜백. | |
| bool | bActive = false |
| 체인 실행 중 여부. | |
| bool | bDebugMode = false |
| 디버그 로그 출력 여부. | |
레벨 스트리밍 이펙트 체인의 순차 실행을 담당합니다.
Phase별 이펙트의 Update / Start / End 디스패치, bSkipThisEffect 처리, 완료 시 콜백 호출을 수행합니다. LevelStreamingSubsystem이 값으로 소유하며, 체인 진행 상태를 독립적으로 관리합니다.
| using FEffectChainExecutor::FContextFactory = TFunction<FLevelStreamingContext()> |
매 틱마다 FLevelStreamingContext를 생성하는 팩토리 타입.
| using FEffectChainExecutor::FOnChainCompleted = TFunction<void(ELevelStreamingPhase)> |
체인 완료 시 완료된 Phase를 인자로 호출되는 콜백 타입.
| void FEffectChainExecutor::ClearEffects | ( | ) |
내부 Phase 체인 맵과 현재 실행 체인을 모두 초기화합니다.
|
private |
Phase에 맞는 인터페이스로 Start 또는 End 이벤트를 디스패치합니다.
| Effect | 대상 이펙트. |
| CallType | Start 또는 End. |
| Context | 현재 레벨 스트리밍 컨텍스트. |


|
private |
Phase에 맞는 인터페이스로 Update를 디스패치하고 결과를 반환합니다.
| Effect | 업데이트할 이펙트. |
| Context | 현재 레벨 스트리밍 컨텍스트. |


|
inline |
현재 ChainIndex를 반환합니다.
|
inline |
현재 Phase를 반환합니다.
|
inline |
체인이 현재 실행 중인지 여부를 반환합니다.

|
private |
다음 실행 대상 이펙트를 결정하고 Start 이벤트를 호출하거나 완료 처리합니다.
bSkipThisEffect인 이펙트를 건너뛰고, 유효한 이펙트가 없으면 OnCompleted를 호출합니다.


| void FEffectChainExecutor::SetupEffects | ( | const TArray< ULevelStreamingEffect * > & | AllEffects | ) |
이펙트 목록을 Phase별로 분류해 내부 체인 맵을 구성합니다.
ILevelPreLoad / ILevelLoading / ILevelPostLoad 인터페이스 캐스트로 Phase를 판별합니다. 한 이펙트가 여러 인터페이스를 구현하면 해당 Phase 모두에 등록됩니다.
| AllEffects | 분류할 이펙트 목록. |

| void FEffectChainExecutor::Start | ( | ELevelStreamingPhase | InPhase, |
| FContextFactory | InContextFactory, | ||
| FOnChainCompleted | InOnCompleted, | ||
| bool | bInDebugMode = false |
||
| ) |
이펙트 체인 실행을 시작합니다.
이전 체인 상태를 초기화한 뒤 첫 번째 이펙트의 Start 이벤트를 즉시 호출합니다. 실행할 체인은 SetupEffects로 미리 구성되어 있어야 합니다.
| InPhase | 현재 Phase. |
| InContextFactory | 매 틱마다 컨텍스트를 생성하는 팩토리 함수. |
| InOnCompleted | 체인 완료 시 호출될 콜백. |
| bInDebugMode | 디버그 로그 출력 여부. |


| void FEffectChainExecutor::Tick | ( | float | DeltaTime | ) |
현재 이펙트를 틱합니다. 완료 시 End 이벤트를 호출하고 다음 이펙트로 진행합니다.
| DeltaTime | 프레임 경과 시간. |


|
private |
체인 실행 중 여부.
|
private |
디버그 로그 출력 여부.
|
private |
현재 실행 중인 이펙트 목록. Start 시 PhaseChains에서 복사됩니다.
|
private |
현재 실행 중인 이펙트의 인덱스.
|
private |
매 틱마다 컨텍스트를 생성하는 팩토리 함수.
|
private |
체인 완료 시 호출될 콜백.
|
private |
현재 Phase.
|
private |
Phase별로 분류된 이펙트 체인 맵. SetupEffects 호출 시 구성됩니다.