Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
CheckPoint.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
9#include "CheckPoint.generated.h"
10
11class UStageEventSenderComponent;
12class UBoxComponent;
13class USceneComponent;
14class ACheckPoint;
15
16#if WITH_EDITORONLY_DATA
17class UBillboardComponent;
18#endif
19
20DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnCheckPointSavedDelegate, AActor*, ContactActor, float, SavedTimeSeconds, FVector, SavedLocation, ACheckPoint*, CheckPoint);
21
22UCLASS()
24{
25 GENERATED_BODY()
26
27public:
29
30public:
31 virtual UStageEventListenerComponent* GetEventListenerComponent() const override
32 {
33 return EventListenerComponent;
34 }
35
36 virtual EStageEvent GetStageEvent() const override
37 {
39 }
40
41public:
42 UFUNCTION(BlueprintCallable, Category = "CheckPoint")
43 void SaveCheckPoint(AActor* PlayerActor);
44
45 UFUNCTION(BlueprintCallable, Category = "CheckPoint")
46 void SendRespawnEvent(AActor* PlayerActor);
47
48public:
49 FORCEINLINE FTransform GetSpawnTransform() const
50 {
51 return SpawnPointComponent ? SpawnPointComponent->GetComponentTransform() : GetActorTransform();
52 }
53
54public:
55 UPROPERTY(BlueprintAssignable, Category = "CheckPoint")
56 FOnCheckPointSavedDelegate OnCheckPointSaved;
57
58protected:
59 virtual void BeginPlay() override;
60 virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
61
62protected:
63 UFUNCTION()
64 void HandleBoxBeginOverlap(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
65
66private:
67 void ActivateOnBeginPlay();
68
69protected:
70 // 레벨 시작 시 자동으로 체크포인트를 저장합니다.
71 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "CheckPoint")
72 bool bActivateOnBeginPlay = false;
73
74 // true이면 최초 감지 이후 모든 진입을 무시합니다.
75 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "CheckPoint")
76 bool bDetectOnce = true;
77
78 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CheckPoint")
79 TObjectPtr<UBoxComponent> BoxComponent;
80
81 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CheckPoint")
82 TObjectPtr<UStageEventListenerComponent> EventListenerComponent;
83
84 // 플레이어가 이 체크포인트에 도달했을 때 발사.
85 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CheckPoint")
86 TObjectPtr<UStageEventSenderComponent> VisitEventSender;
87
88 // 이 체크포인트에서 플레이어가 부활(리스폰)했을 때 발사.
89 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CheckPoint")
90 TObjectPtr<UStageEventSenderComponent> RespawnEventSender;
91
92 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CheckPoint")
93 TObjectPtr<USceneComponent> SpawnPointComponent;
94
95#if WITH_EDITORONLY_DATA
96 UPROPERTY(VisibleAnywhere)
97 TObjectPtr<UBillboardComponent> SpriteComponent;
98#endif
99
100private:
101 bool bVisited = false;
102};
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnCheckPointSavedDelegate, AActor *, ContactActor, float, SavedTimeSeconds, FVector, SavedLocation, ACheckPoint *, CheckPoint)
EStageEvent
Definition EStageEventEnums.h:5
Definition CheckPoint.h:24
virtual UStageEventListenerComponent * GetEventListenerComponent() const override
Definition CheckPoint.h:31
virtual EStageEvent GetStageEvent() const override
Definition CheckPoint.h:36
Definition InteractableActor.h:16
Definition StageEventListenerInterface.h:24