내가 만든 actor인 LampActor에 이벤트를 추가합니다.
그리고 레벨 블루프린트와 연결되는 ScriptActor를 만들어서 LampActor에서 발생하는 이벤트를 LevelScript Actor에서 받아 처리하는 방법을 설명합니다.
// LampActor.h
DECLARE_EVENT(ALampActor, FLightSetEvent)
// LampActor.h
public:
FLightSetEvent& OnLigthSet()
{
return lightSetEvent;
}
private:
FLightSetEvent lightSetEvent;
램프 액터의 헤더 파일에 위와 같이 이벤트를 선언합니다.
// LampActor.cpp
lightSetEvent.Broadcast();
위 코드로 이벤트를 발생시킵니다.
// MyLevelScriptActor.cpp
void AMyLevelScriptActor::BeginPlay()
{
Super::BeginPlay();
//m_pActor->SetLight(true);
m_pActor->OnLigthSet().AddUObject(this, &AMyLevelScriptActor::OnLightSetHandler);
}
void AMyLevelScriptActor::OnLightSetHandler()
{
UE_LOG(LogTemp, Warning, TEXT("in OnLightSetHandler Handler !!"));
}
그리고 레벨블루프린트에 연결되는 MyLevelScriptActor를 만들어 램프 액터에서 발생하는 이벤트를 받아 처리합니다.
이렇게 하기 위해 레벨블루프린트에서 부모 클래스로 우리가 만든 MyLevelScriptActor 클래스를 설정해 줍니다.
이제 램프 액터에서 이벤트가 발생하면 그 이벤트를 MyLevelScriptActor에서 받아 로그를 보여줍니다. (OnLightSetHandler())
'프로그래밍 > 언리얼엔진' 카테고리의 다른 글
언리얼엔진 강좌 66 [쥐를잡자-02] 동작을 위한 손모양 만들기 (0) | 2023.11.15 |
---|---|
언리얼엔진 강좌 65 [쥐를잡자-01] 쥐를잡자 찍찍찍 계획, 설계 (0) | 2023.11.12 |
언리얼엔진 4 C++강좌 004 [actor-04] 가까이 다가가면 자동으로 불이 켜지는 램프 액터 만들기 (1) | 2023.10.29 |
언리얼엔진 4 C++강좌 005 [actor-05] C++ 클래스의 재사용성 - 다른 프로젝트에서도 사용 가능할까? (0) | 2023.10.29 |
언리얼엔진 4 C++강좌 006 [actor-06] 에디터에서 설정하면 실시간으로 액터에 반영되도록 하기 (0) | 2023.10.29 |