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

#include <ATeleportTrigger.h>

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

Public 멤버 함수

 ATeleportTrigger ()
 
ECompassMarkerType GetCompassMarkerType ()
 
void OnActivate ()
 
virtual void OnActivate_Implementation ()
 
virtual void SetShowOnCompass (bool bShow)
 
virtual bool ShouldShowOnCompass () const
 
virtual void Tick (float DeltaTime) override
 

Public 속성

bool bShowOnCompass = true
 
int32 DoorIndex = 0
 
ECompassMarkerType MarkerType
 

Protected 멤버 함수

virtual void BeginPlay () override
 
void OnTriggerBeginOverlap (UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
 트리거 박스 Overlap 시작 이벤트 핸들러
 
virtual void SetCompassMarkerInto (ECompassMarkerType InMarkerType) override
 

Protected 속성

bool bIsOneShot
 원샷 모드 활성화 여부 (true = 한 번만 작동, false = 반복 작동 가능)
 
bool bIsTriggered
 트리거 활성화 상태 (false = 활성화, true = 비활성화)
 
bool bShowDebugBox
 디버그 드로우 표시 여부
 
FColor DebugBoxColor
 디버그 박스 색상
 
TObjectPtr< class ATeleportOutTeleportOut
 텔레포트 목표 위치를 나타내는 TeleportOut Actor
 
TObjectPtr< class UBoxComponent > TriggerBox
 트리거 영역을 정의하는 박스 컴포넌트
 

상세한 설명

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

생성자 & 소멸자 문서화

◆ ATeleportTrigger()

ATeleportTrigger::ATeleportTrigger ( )

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

17{
18 PrimaryActorTick.bCanEverTick = true;
19 bReplicates = true;
20
21 // 루트 컴포넌트로 BoxComponent 생성
22 TriggerBox = CreateDefaultSubobject<UBoxComponent>(TEXT("TriggerBox"));
23 RootComponent = TriggerBox;
24
25 // 박스 크기 기본값 설정
26 TriggerBox->SetBoxExtent(FVector(100.0f, 100.0f, 100.0f));
27
28 // Overlap 이벤트 활성화
29 TriggerBox->SetGenerateOverlapEvents(true);
30 TriggerBox->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
31 TriggerBox->SetCollisionResponseToAllChannels(ECR_Ignore);
32 TriggerBox->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
33
34 // 초기값 설정
35 bIsOneShot = true;
36 bIsTriggered = false;
37 bShowDebugBox = true;
38 DebugBoxColor = FColor::Green;
39
41}
FColor DebugBoxColor
디버그 박스 색상
bool bIsOneShot
원샷 모드 활성화 여부 (true = 한 번만 작동, false = 반복 작동 가능)
bool bShowDebugBox
디버그 드로우 표시 여부
TObjectPtr< class UBoxComponent > TriggerBox
트리거 영역을 정의하는 박스 컴포넌트
bool bIsTriggered
트리거 활성화 상태 (false = 활성화, true = 비활성화)

다음을 참조함 : bIsOneShot, bIsTriggered, bShowDebugBox, DebugBoxColor, ICompassTargetInterface::MarkerType, Teleporter, TriggerBox.

멤버 함수 문서화

◆ BeginPlay()

void ATeleportTrigger::BeginPlay ( )
overrideprotectedvirtual

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

44{
45 Super::BeginPlay();
46
47 if (TriggerBox)
48 TriggerBox->OnComponentBeginOverlap.AddDynamic(this, &ATeleportTrigger::OnTriggerBeginOverlap);
49}
void OnTriggerBeginOverlap(UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
트리거 박스 Overlap 시작 이벤트 핸들러

다음을 참조함 : OnTriggerBeginOverlap(), TriggerBox.

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

◆ GetCompassMarkerType()

ECompassMarkerType ICompassTargetInterface::GetCompassMarkerType ( )
inlineinherited

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

29{return MarkerType;}

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

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

◆ OnActivate()

void ATeleportTrigger::OnActivate ( )

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

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

◆ OnActivate_Implementation()

void ATeleportTrigger::OnActivate_Implementation ( )
virtual

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

173{
174 PRINT_STRING(TEXT("ABroadcastTrigger Activated"));
175}
#define PRINT_STRING(fmt,...)
Definition GameLogging.h:45

다음을 참조함 : PRINT_STRING.

◆ OnTriggerBeginOverlap()

void ATeleportTrigger::OnTriggerBeginOverlap ( UPrimitiveComponent *  OverlappedComponent,
AActor *  OtherActor,
UPrimitiveComponent *  OtherComp,
int32  OtherBodyIndex,
bool  bFromSweep,
const FHitResult &  SweepResult 
)
protected

트리거 박스 Overlap 시작 이벤트 핸들러

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

101{
102 // 서버에서만 처리
103 if (!HasAuthority())
104 return;
105
106 // 원샷 모드이고 이미 트리거되었으면 무시
108 return;
109
110 // PlayerActor인지 확인
111 APlayerActor* PlayerActor = Cast<APlayerActor>(OtherActor);
112 if (PlayerActor)
113 {
114 // TeleportOut이 설정되어 있는지 확인
115 if (!TeleportOut)
116 {
117 PRINTLOG(TEXT("ATeleportTrigger: TeleportOut이 설정되지 않았습니다!"));
118 return;
119 }
120
121 // TeleportOut의 위치 가져오기
122 FTransform TargetTransform = TeleportOut->GetActorTransform();
123
124 // NetworkBroadcastActor를 통해 모든 플레이어 텔레포트
125 if (ANetworkBroadcastActor* BroadcastActor = ANetworkBroadcastActor::Get(this))
126 {
127 BroadcastActor->SendTeleportAllPlayers(TargetTransform, this);
128 PRINTLOG( TEXT("텔레포트 요청: %s"), *TargetTransform.ToString());
129
130 // 마커 변경
131 if (ALingoGameState* GS = GetWorld()->GetGameState<ALingoGameState>())
132 {
133 if (ActorHasTag(FName("ReadQuestEnd")))
134 {
135 GS->SetAllCompassVisibility(false);
136 GS->SetCompassVisibilityByTag("ListenQuestStart", true);
137 }
138 else if (ActorHasTag(FName("ListenQuestEnd")))
139 {
140 GS->SetAllCompassVisibility(false);
141 GS->SetCompassVisibilityByTag("Whitney", true);
142 }
143 }
144
145
146 if ( DoorIndex > 0 )
147 {
148 BroadcastActor->SendDoorMessage(DoorIndex, true, this);
149 }
150 }
151 else
152 {
153 PRINTLOG(TEXT("ATeleportTrigger: NetworkBroadcastActor를 찾을 수 없습니다!"));
154 }
155
156
157
158
159 OnActivate();
160
161 // 원샷 모드일 때만 트리거 상태 변경
162 if (bIsOneShot)
163 bIsTriggered = true;
164 }
165}
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30
네트워크 복제를 위한 전역 브로드캐스트 Actor
static ANetworkBroadcastActor * Get(const UObject *WorldContextObject)
싱글톤 인스턴스 가져오기
Main character driven directly by the player.
TObjectPtr< class ATeleportOut > TeleportOut
텔레포트 목표 위치를 나타내는 TeleportOut Actor

다음을 참조함 : bIsOneShot, bIsTriggered, DoorIndex, ANetworkBroadcastActor::Get(), OnActivate(), PRINTLOG, TeleportOut.

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

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

◆ SetCompassMarkerInto()

void ATeleportTrigger::SetCompassMarkerInto ( ECompassMarkerType  InMarkerType)
overrideprotectedvirtual

ICompassTargetInterface(으)로부터 재구현되었습니다.

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

168{
169 MarkerType = InMarkerType;
170}

다음을 참조함 : ICompassTargetInterface::MarkerType.

◆ SetShowOnCompass()

virtual void ICompassTargetInterface::SetShowOnCompass ( bool  bShow)
inlinevirtualinherited

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

◆ ShouldShowOnCompass()

virtual bool ICompassTargetInterface::ShouldShowOnCompass ( ) const
inlinevirtualinherited

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

32{return bShowOnCompass;}

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

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

◆ Tick()

void ATeleportTrigger::Tick ( float  DeltaTime)
overridevirtual

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

52{
53 Super::Tick(DeltaTime);
54
56 {
57 FVector BoxCenter = TriggerBox->GetComponentLocation();
58 FVector BoxExtent = TriggerBox->GetScaledBoxExtent();
59 FRotator BoxRotation = TriggerBox->GetComponentRotation();
60
61 // 디버그 박스 표시 (트리거 활성화 상태일 때만)
62 if (!bIsTriggered)
63 {
64 DrawDebugBox(
65 GetWorld(),
66 BoxCenter,
67 BoxExtent,
68 BoxRotation.Quaternion(),
70 false,
71 -1.0f,
72 0,
73 2.0f
74 );
75 }
76
77 // 트리거 정보를 텍스트로 표시
78 FString StatusText = bIsTriggered ? TEXT("[TRIGGERED]") : TEXT("[ACTIVE]");
79 FColor TextColor = bIsTriggered ? FColor::Red : FColor::Green;
80
81 FVector TextLocation = BoxCenter + FVector(0.0f, 0.0f, BoxExtent.Z + 50.0f);
82
83 // 상태 표시
84 DrawDebugString(
85 GetWorld(),
86 TextLocation,
87 StatusText,
88 nullptr,
89 TextColor,
90 0.0f,
91 true,
92 1.2f
93 );
94 }
95}

다음을 참조함 : bIsTriggered, bShowDebugBox, DebugBoxColor, TriggerBox.

멤버 데이터 문서화

◆ bIsOneShot

bool ATeleportTrigger::bIsOneShot
protected

원샷 모드 활성화 여부 (true = 한 번만 작동, false = 반복 작동 가능)

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

다음에 의해서 참조됨 : ATeleportTrigger(), OnTriggerBeginOverlap().

◆ bIsTriggered

bool ATeleportTrigger::bIsTriggered
protected

트리거 활성화 상태 (false = 활성화, true = 비활성화)

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

다음에 의해서 참조됨 : ATeleportTrigger(), OnTriggerBeginOverlap(), Tick().

◆ bShowDebugBox

bool ATeleportTrigger::bShowDebugBox
protected

디버그 드로우 표시 여부

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

다음에 의해서 참조됨 : ATeleportTrigger(), Tick().

◆ bShowOnCompass

bool ICompassTargetInterface::bShowOnCompass = true
inherited

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

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

◆ DebugBoxColor

FColor ATeleportTrigger::DebugBoxColor
protected

디버그 박스 색상

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

다음에 의해서 참조됨 : ATeleportTrigger(), Tick().

◆ DoorIndex

int32 ATeleportTrigger::DoorIndex = 0

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

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

◆ MarkerType

◆ TeleportOut

TObjectPtr<class ATeleportOut> ATeleportTrigger::TeleportOut
protected

텔레포트 목표 위치를 나타내는 TeleportOut Actor

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

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

◆ TriggerBox

TObjectPtr<class UBoxComponent> ATeleportTrigger::TriggerBox
protected

트리거 영역을 정의하는 박스 컴포넌트

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

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


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