Unreal Engine/C++

[Unreal Engine 4 C++] C++에서 참조 인자를 가진 함수를 블루프린트에서 호출할 때 출력이 아닌 입력으로 참조 인자 사용하기

한돌이 2023. 1. 10. 15:59

 C++에서 참조 인자를 가진 함수를 만들어 블루프린트에서 해당 함수를 호출을 하게 되면 다음과 같이 인자의 입력이 아닌 출력을 하는 함수가 만들어진다.

 

UFUNCTION(BlueprintCallable, Category = "Category")
void FunctionNameRef(float& ParameterFloat);

 

 C++ 함수에서 참조 인자를 받아 함수를 실행한 후 참조 인자를 블루프린트에서 활용을 하겠다면 문제가 없다.

 하지만 블루프린트에서 함수를 호출하고 참조 인자를 입력할 때는 문제가 생긴다.

 이 때 참조 인자를 const로 받게 되면 문제는 해결된다.

 

UFUNCTION(BlueprintCallable, Category = "Category")
void FunctionNameConst(const float& ParameterFloat);

 

 하지만 이렇게 만들어진 함수에서 인자는 const로 받았기 때문에 값을 수정할 수 없다.

 참조 받은 인자의 값을 수정할 수 있게 만들려면 다음과 같이 UPARAM(ref) 매크로를 사용하면 된다.

 

UFUNCTION(BlueprintCallable, Category = "Category")
void FunctionNameUPARAM(UPARAM(ref) float& ParameterFloat);