Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
FTask_Groggy 구조체 참조

#include <Task_Groggy.h>

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

Public 타입

using FInstanceDataType = FGroggyTaskInstanceData
 

Public 멤버 함수

virtual const UStruct * GetInstanceDataType () const override
 
virtual EStateTreeRunStatus EnterState (FStateTreeExecutionContext &Context, const FStateTreeTransitionResult &Transition) const override
 
virtual EStateTreeRunStatus Tick (FStateTreeExecutionContext &Context, float DeltaTime) const override
 
virtual void ExitState (FStateTreeExecutionContext &Context, const FStateTreeTransitionResult &Transition) const override
 

멤버 타입정의 문서화

◆ FInstanceDataType

멤버 함수 문서화

◆ EnterState()

EStateTreeRunStatus FTask_Groggy::EnterState ( FStateTreeExecutionContext &  Context,
const FStateTreeTransitionResult &  Transition 
) const
overridevirtual
13{
14 FInstanceDataType& Data = Context.GetInstanceData<FInstanceDataType>(*this);
15
16 if (IsValid(Data.Actor) == false)
17 {
18 return EStateTreeRunStatus::Failed;
19 }
20
21 Data.GroggyComponent = Data.Actor->FindComponentByClass<UEnemyGroggyComponent>();
22 if (IsValid(Data.GroggyComponent) == false)
23 {
24 return EStateTreeRunStatus::Failed;
25 }
26
27 ACharacter* Character = Cast<ACharacter>(Data.Actor);
28 if (IsValid(Character))
29 {
30 if (USkeletalMeshComponent* MeshComponent = Character->GetMesh())
31 {
32 Data.AnimInstance = MeshComponent->GetAnimInstance();
33 }
34 }
35
36 Data.GroggyMontage = Data.GroggyComponent->GetGroggyMontage();
37
38 if (Data.Mode == EGroggyStateMode::Enter)
39 {
40 // 이동 제약
41 if (IsValid(Character))
42 {
43 if (AController* Controller = Character->GetController())
44 {
45 Controller->StopMovement();
46 }
47 }
48
49 // 원래 실행 중인 몽타주 정리
50 if (IsValid(Data.AnimInstance) && IsValid(Data.GroggyMontage))
51 {
52 Data.AnimInstance->StopAllMontages(0.05f);
53 Data.AnimInstance->Montage_Play(Data.GroggyMontage, 1.0f);
54 }
55
56 return EStateTreeRunStatus::Running;
57 }
58
59 if (IsValid(Data.AnimInstance) == false || IsValid(Data.GroggyMontage) == false)
60 {
61 return EStateTreeRunStatus::Succeeded;
62 }
63
64 const FName EndSectionName = Data.GroggyComponent->GetGroggyEndSectionName();
65 if (EndSectionName.IsNone())
66 {
67 return EStateTreeRunStatus::Succeeded;
68 }
69
70 if (Data.AnimInstance->Montage_IsPlaying(Data.GroggyMontage) == false)
71 {
72 return EStateTreeRunStatus::Succeeded;
73 }
74
75 Data.AnimInstance->Montage_JumpToSection(EndSectionName, Data.GroggyMontage);
76
77 return EStateTreeRunStatus::Running;
78}
TObjectPtr< UEnemyGroggyComponent > GroggyComponent
Definition Task_Groggy.h:33
FGroggyTaskInstanceData FInstanceDataType
Definition Task_Groggy.h:47

◆ ExitState()

void FTask_Groggy::ExitState ( FStateTreeExecutionContext &  Context,
const FStateTreeTransitionResult &  Transition 
) const
overridevirtual
103{
104 FInstanceDataType& Data = Context.GetInstanceData<FInstanceDataType>(*this);
105
106 if (Data.Mode == EGroggyStateMode::Recover && IsValid(Data.GroggyComponent))
107 {
108 Data.GroggyComponent->CompleteGroggyRecovery();
109 }
110}

◆ GetInstanceDataType()

virtual const UStruct * FTask_Groggy::GetInstanceDataType ( ) const
inlineoverridevirtual
48{ return FInstanceDataType::StaticStruct(); }

◆ Tick()

EStateTreeRunStatus FTask_Groggy::Tick ( FStateTreeExecutionContext &  Context,
float  DeltaTime 
) const
overridevirtual
81{
82 FInstanceDataType& Data = Context.GetInstanceData<FInstanceDataType>(*this);
83
84 if (Data.Mode == EGroggyStateMode::Enter)
85 {
86 return EStateTreeRunStatus::Running;
87 }
88
89 if (IsValid(Data.AnimInstance) == false || IsValid(Data.GroggyMontage) == false)
90 {
91 return EStateTreeRunStatus::Succeeded;
92 }
93
94 if (Data.AnimInstance->Montage_IsPlaying(Data.GroggyMontage))
95 {
96 return EStateTreeRunStatus::Running;
97 }
98
99 return EStateTreeRunStatus::Succeeded;
100}

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