KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
AGate 클래스 참조

플레이어 접근 및 브로드캐스트 메시지에 반응해 문을 여닫는 액터입니다. 더 자세히 ...

#include <AGate.h>

+ AGate에 대한 상속 다이어그램 :
+ AGate에 대한 협력 다이어그램:

Public 멤버 함수

 AGate ()
 컴포넌트 계층을 구성하는 기본 생성자입니다.
 
void CloseDoor ()
 문을 닫는 동작을 트리거합니다.
 
void OpenDoor ()
 문을 여는 동작을 트리거합니다.
 

Protected 멤버 함수

virtual void BeginPlay () override
 브로드캐스트 구독 등 초기화를 수행합니다.
 
bool IsPlayerActor (const AActor *OtherActor) const
 겹친 액터가 플레이어인지 판별합니다.
 
void OnDoorMessage (int32 InGateID, bool Open, AActor *EventInstigator)
 외부 시스템에서 전달된 개폐 메시지를 처리합니다.
 
void OnOverlapBegin (UPrimitiveComponent *OverlappedComp, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
 플레이어가 감지 범위에 들어왔을 때 호출됩니다.
 
void OnOverlapEnd (UPrimitiveComponent *OverlappedComp, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex)
 플레이어가 감지 범위에서 벗어났을 때 호출됩니다.
 
void PlayCloseDoorAnimation ()
 문을 닫을 때 재생할 블루프린트 애니메이션입니다.
 
void PlayOpenDoorAnimation ()
 문을 열 때 재생할 블루프린트 애니메이션입니다.
 

Protected 속성

TObjectPtr< class UBoxComponent > BoxCollision
 
TObjectPtr< class UStaticMeshComponent > Door_Left
 
TObjectPtr< class UStaticMeshComponent > Door_Right
 
int32 GateID
 
TObjectPtr< class USceneComponent > RootComp
 

Private 속성

bool bIsOpen
 
TArray< TObjectPtr< class APawn > > OverlappingPawns
 

상세한 설명

플레이어 접근 및 브로드캐스트 메시지에 반응해 문을 여닫는 액터입니다.

AGate.h 파일의 14 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ AGate()

AGate::AGate ( )

컴포넌트 계층을 구성하는 기본 생성자입니다.

충돌 프리미티브와 초기 개방 상태를 구성합니다.

AGate.cpp 파일의 18 번째 라인에서 정의되었습니다.

19{
20 RootComp = CreateDefaultSubobject<USceneComponent>(TEXT("Root"));
21 RootComponent = RootComp;
22
23 BoxCollision = CreateDefaultSubobject<UBoxComponent>(TEXT("BoxCollision"));
24 BoxCollision->SetupAttachment(RootComponent);
25
26 BoxCollision->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
27 BoxCollision->SetCollisionObjectType(ECollisionChannel::ECC_WorldDynamic);
28 BoxCollision->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
29 BoxCollision->SetCollisionResponseToChannel(ECollisionChannel::ECC_Pawn, ECollisionResponse::ECR_Overlap);
30
31 BoxCollision->OnComponentBeginOverlap.AddDynamic(this, &AGate::OnOverlapBegin);
32 BoxCollision->OnComponentEndOverlap.AddDynamic(this, &AGate::OnOverlapEnd);
33
34 Door_Left = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Door_Left"));
35 Door_Left->SetupAttachment(RootComponent);
36
37 Door_Right = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Door_Right"));
38 Door_Right->SetupAttachment(RootComponent);
39
40 bIsOpen = false;
41 GateID = -1;
42
43 PrimaryActorTick.bCanEverTick = false;
44}
int32 GateID
Definition AGate.h:73
TObjectPtr< class USceneComponent > RootComp
Definition AGate.h:61
TObjectPtr< class UBoxComponent > BoxCollision
Definition AGate.h:70
bool bIsOpen
Definition AGate.h:77
TObjectPtr< class UStaticMeshComponent > Door_Right
Definition AGate.h:67
void OnOverlapEnd(UPrimitiveComponent *OverlappedComp, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex)
플레이어가 감지 범위에서 벗어났을 때 호출됩니다.
Definition AGate.cpp:141
void OnOverlapBegin(UPrimitiveComponent *OverlappedComp, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
플레이어가 감지 범위에 들어왔을 때 호출됩니다.
Definition AGate.cpp:126
TObjectPtr< class UStaticMeshComponent > Door_Left
Definition AGate.h:64

다음을 참조함 : bIsOpen, BoxCollision, Door_Left, Door_Right, GateID, OnOverlapBegin(), OnOverlapEnd(), RootComp.

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ BeginPlay()

void AGate::BeginPlay ( )
overrideprotectedvirtual

브로드캐스트 구독 등 초기화를 수행합니다.

플레이 시작 시 브로드캐스트 도어 메시지를 구독합니다.

AGate.cpp 파일의 47 번째 라인에서 정의되었습니다.

48{
49 Super::BeginPlay();
50
51 if (auto EventManager = UBroadcastManager::Get(this))
52 {
53 EventManager->OnDoorMessage.AddDynamic(this, &AGate::OnDoorMessage);
54 }
55}
void OnDoorMessage(int32 InGateID, bool Open, AActor *EventInstigator)
외부 시스템에서 전달된 개폐 메시지를 처리합니다.
Definition AGate.cpp:62

다음을 참조함 : OnDoorMessage().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ CloseDoor()

void AGate::CloseDoor ( )

문을 닫는 동작을 트리거합니다.

플레이어가 주변에 남지 않았을 때 게이트를 닫는 플레이스홀더입니다.

AGate.cpp 파일의 97 번째 라인에서 정의되었습니다.

98{
99 if (bIsOpen == false)
100 return;
101
102 bIsOpen = false;
104}
void PlayCloseDoorAnimation()
문을 닫을 때 재생할 블루프린트 애니메이션입니다.

다음을 참조함 : bIsOpen, PlayCloseDoorAnimation().

다음에 의해서 참조됨 : OnDoorMessage(), OnOverlapEnd().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsPlayerActor()

bool AGate::IsPlayerActor ( const AActor *  OtherActor) const
protected

겹친 액터가 플레이어인지 판별합니다.

겹친 액터가 플레이어 폰인지 검증하는 헬퍼입니다.

매개변수
OtherActor평가할 대상 액터입니다.
반환값
액터가 게이트 동작을 트리거해야 하면 true를 반환합니다.

AGate.cpp 파일의 111 번째 라인에서 정의되었습니다.

112{
113 if ( OtherActor == nullptr)
114 return false;
115
116 if ( OtherActor == this)
117 return false;
118
119 if ( OtherActor->ActorHasTag(GameTags::Player) == false)
120 return false;
121
122 return true;
123}
static const FName Player
플레이어 액터를 식별하기 위한 태그입니다.
Definition Onepiece.h:45

다음을 참조함 : GameTags::Player.

다음에 의해서 참조됨 : OnOverlapBegin(), OnOverlapEnd().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnDoorMessage()

void AGate::OnDoorMessage ( int32  InGateID,
bool  Open,
AActor *  EventInstigator 
)
protected

외부 시스템에서 전달된 개폐 메시지를 처리합니다.

이 게이트를 대상으로 한 브로드캐스트 도어 토글에 반응합니다.

매개변수
InGateID[in] 대상 게이트 식별자입니다.
Open[in] true이면 문을 열고 false이면 닫습니다.
InGateID조작할 게이트 식별자입니다.
Open게이트를 열지 닫을지 여부입니다.

AGate.cpp 파일의 62 번째 라인에서 정의되었습니다.

63{
64 if ( InGateID != this->GateID)
65 {
66 // 나한테 명령한거 아님
67 return;
68 }
69
70 if ( Open == this->bIsOpen)
71 {
72 // 내가 또 해야하는거 아님
73 return;
74 }
75
76 if (Open)
77 {
78 OpenDoor();
79 }
80 else
81 {
82 CloseDoor();
83 }
84}
void OpenDoor()
문을 여는 동작을 트리거합니다.
Definition AGate.cpp:87
void CloseDoor()
문을 닫는 동작을 트리거합니다.
Definition AGate.cpp:97

다음을 참조함 : bIsOpen, CloseDoor(), GateID, OpenDoor().

다음에 의해서 참조됨 : BeginPlay().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnOverlapBegin()

void AGate::OnOverlapBegin ( UPrimitiveComponent *  OverlappedComp,
AActor *  OtherActor,
UPrimitiveComponent *  OtherComp,
int32  OtherBodyIndex,
bool  bFromSweep,
const FHitResult &  SweepResult 
)
protected

플레이어가 감지 범위에 들어왔을 때 호출됩니다.

트리거 볼륨에 진입한 플레이어를 처리하여 게이트를 엽니다.

AGate.cpp 파일의 126 번째 라인에서 정의되었습니다.

127{
128 if (IsPlayerActor(OtherActor))
129 {
130 if ( auto Pawn = Cast<APawn>(OtherActor) )
131 {
132 if ( OverlappingPawns.Contains(Pawn) == false )
133 OverlappingPawns.Add(Pawn);
134 }
135
136 OpenDoor();
137 }
138}
bool IsPlayerActor(const AActor *OtherActor) const
겹친 액터가 플레이어인지 판별합니다.
Definition AGate.cpp:111
TArray< TObjectPtr< class APawn > > OverlappingPawns
Definition AGate.h:80

다음을 참조함 : IsPlayerActor(), OpenDoor(), OverlappingPawns.

다음에 의해서 참조됨 : AGate().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnOverlapEnd()

void AGate::OnOverlapEnd ( UPrimitiveComponent *  OverlappedComp,
AActor *  OtherActor,
UPrimitiveComponent *  OtherComp,
int32  OtherBodyIndex 
)
protected

플레이어가 감지 범위에서 벗어났을 때 호출됩니다.

트리거를 떠나는 플레이어를 추적해 비었을 때 게이트를 닫습니다.

AGate.cpp 파일의 141 번째 라인에서 정의되었습니다.

142{
143 if (IsPlayerActor(OtherActor))
144 {
145 if ( auto Pawn = Cast<APawn>(OtherActor) )
146 OverlappingPawns.Remove(Pawn);
147
148 if (OverlappingPawns.Num() == 0)
149 CloseDoor();
150 }
151}

다음을 참조함 : CloseDoor(), IsPlayerActor(), OverlappingPawns.

다음에 의해서 참조됨 : AGate().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OpenDoor()

void AGate::OpenDoor ( )

문을 여는 동작을 트리거합니다.

게이트를 열고 대응되는 오디오 피드백을 재생합니다.

AGate.cpp 파일의 87 번째 라인에서 정의되었습니다.

88{
89 if (bIsOpen == true)
90 return;
91
92 bIsOpen = true;
94}
void PlayOpenDoorAnimation()
문을 열 때 재생할 블루프린트 애니메이션입니다.

다음을 참조함 : bIsOpen, PlayOpenDoorAnimation().

다음에 의해서 참조됨 : OnDoorMessage(), OnOverlapBegin().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PlayCloseDoorAnimation()

void AGate::PlayCloseDoorAnimation ( )
protected

문을 닫을 때 재생할 블루프린트 애니메이션입니다.

다음에 의해서 참조됨 : CloseDoor().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PlayOpenDoorAnimation()

void AGate::PlayOpenDoorAnimation ( )
protected

문을 열 때 재생할 블루프린트 애니메이션입니다.

다음에 의해서 참조됨 : OpenDoor().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ bIsOpen

bool AGate::bIsOpen
private

AGate.h 파일의 77 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AGate(), CloseDoor(), OnDoorMessage(), OpenDoor().

◆ BoxCollision

TObjectPtr<class UBoxComponent> AGate::BoxCollision
protected

AGate.h 파일의 70 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AGate().

◆ Door_Left

TObjectPtr<class UStaticMeshComponent> AGate::Door_Left
protected

AGate.h 파일의 64 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AGate().

◆ Door_Right

TObjectPtr<class UStaticMeshComponent> AGate::Door_Right
protected

AGate.h 파일의 67 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AGate().

◆ GateID

int32 AGate::GateID
protected

AGate.h 파일의 73 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AGate(), OnDoorMessage().

◆ OverlappingPawns

TArray<TObjectPtr<class APawn> > AGate::OverlappingPawns
private

AGate.h 파일의 80 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnOverlapBegin(), OnOverlapEnd().

◆ RootComp

TObjectPtr<class USceneComponent> AGate::RootComp
protected

AGate.h 파일의 61 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AGate().


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