프로그래밍/언리얼

Unreal BlueprintNativeEvent

추향 2024. 2. 8. 04:16

Unreal BlueprintNativeEvent

이번글은 Unreal UFunction매크로의 BlueprintNativeEvent에 대한 글입니다.

BlueprintNativeEvent를 사용하면 C++에서도 정의 가능하고 블루프린트에서도 재정의가 가능해집니다.

이 내용에 대하여 간단하게 작성하고자 합니다.

  • BlueprintNativeEvent / cpp
  • Blueprint

BlueprintNativeEvent / Cpp

이 지정자를 사용하면 C++에서 함수 구현을 하고, 블루프린트로 덮어써서 보조하거나 대체할 수 있게 됩니다.

사용하기 위해서는 _Implementation를 붙인 가상함수를 추가로 선언해야 합니다.

https://docs.unrealengine.com/5.1/ko/ufunctions-in-unreal-engine/

 

UFunction

게임플레이 클래스용 함수 생성 및 구현 레퍼런스입니다.

docs.unrealengine.com

아래 코드와 같이 사용하면 됩니다.

//ItemBase.h
UFUNCTION(BlueprintNativeEvent)
void Test();//언리얼에서 호출되는 함수.
virtual void Test_Implementation(); //이것만 정의. cpp에서 동작시 호출됨

//ItemBase.cpp
void AItemBase::BeginPlay()
{
	Super::BeginPlay();
	Test();
}
void AItemBase::Test_Implementation()
{
	GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Blue, FString::Printf(TEXT("This is Test_Implementation")));
}

 

블루프린트(Blueprint)

위 코드를 실행하면 아까 작성한 Text가 나오는 것을 확인할 수 있다.

블루프린트에서 재정의.

cpp에서 작성한 부분은 보이지 않는다.

그럼 이번엔 cpp코드와 블루프린트를 같이 사용해 보겠습니다.

event노드를 우클릭해서 Add Call to Parent Function을 불러옵니다.

이런 식으로 사용하면 됩니다.

끝!