https://docs.unrealengine.com/5.3/ko/ufunctions-in-unreal-engine/
함수 지정자 목차에 관련 내용이 있다.
함수에 UFUNCTION(BlueprintNativeEvent) 매크로를 달아주면, 함수의 기본 정의는 C++ 클래스에 구현해놓고 블루프린트에서 이를 확장, 또는 대체하는 것이 가능하다.
기본 C++ 문법의 가상함수와 비슷하다. 기본적인 구현이 되어있지만, 서브클래스에서 오버라이딩 할 수 있다.
UFUNCTION(BlueprintImplementableEvent)가 C++ 코드에서는 헤더에 함수의 선언만 해놓고, 그 구현을 블루프린트에 완전히 맡기는 것과는 대조적이다.
그런데, 원래 하던대로 .h에
UFUNCTION(BlueprintNativeEvent)
void MyFunction(); //선언
.cpp에
void MyClass::MyFunction()
{
// ~~~구현~~~~
}
이렇게 작성할 시 컴파일 에러가 발생한다.
왜냐하면, BlueprintNativeEvent인 함수를 구현할 때는 구현부의 함수명 뒤에 _Implementation을 붙여주어야 하기 때문이다.
따라서, .cpp 내부 함수 구현은
void MyClass::MyFunction_Implementation()
{
// ~~~구현~~~~
}
이렇게 되어야한다.
비주얼 스튜디오에서는 함수명 부분에 빨간 밑줄을 그으며 경고할 것이다.
하지만 그대로 컴파일하면 문제없이 실행이 가능하다.
'언리얼 엔진 5 > 공부' 카테고리의 다른 글
[언리얼 엔진 5] 프로젝트에 모듈을 추가하는 방법 (0) | 2023.12.20 |
---|---|
[언리얼 엔진 5] 언리얼 엔진에서의 OnTriggerEnter (OnComponentBeginOverlap) (0) | 2023.12.17 |
[언리얼 엔진 5] 애니메이션 사운드 (0) | 2023.12.16 |
[언리얼 엔진 5] Blend Space 방향 전환이 부자연스러울 경우 확인할 것 (0) | 2023.12.15 |
[언리얼 엔진 5] Collision에 대하여 (0) | 2023.11.27 |