분류 전체보기
-
[Unreal Engine] SetTimer() : Passing parametersUnreal Engine 5._ 2023. 2. 24. 20:57
이전 글 (SetTimer() : C++ & Blueprint)에서 SetTimer에 대해 알아보았습니다. 특정 함수를 호출할 때, 반복 여부와 시간 간격을 자유롭게 지정할 수 있는 것이 큰 특징이었습니다. 이번 글에서는 SetTimer함수를 사용할 때, 호출되는 함수에 값을 전달하는 방법을 살펴보도록 하겠습니다. SetTimer의 오버로드 중 FTimerDelegate를 사용하는 함수가 있었습니다. 해당 버전의 함수는 FTimerDelegate 객체가 호출될 함수의 정보를 가지고 있습니다. 여기서 FTimerDelegate가 가질 수 있는 정보 중에는 호출될 함수에 전달될 파라미터도 포함됩니다. 코드를 통해 표현하면 아래와 같습니다. // Way 1 FTimerDelegate Del1 = FTimerD..
-
[Unreal Engine] IsA : Object type check in C++Unreal Engine 5._ 2023. 2. 17. 14:23
오브젝트에 대한 타입 체크가 필요한 경우, 블루프린트는 아래의 방법을 사용할 수 있습니다. 첫 번째는 위쪽의 Cast노드이고, 두 번째는 아래의 =(Equal) 노드입니다. 이번 글에서는 C++에서 오브젝트의 타입을 체크할 수 있는 기능에 대하여 살펴보도록 하겠습니다. 1. BP to C++ 더보기 C++또한 위 블루프린트 노드와 유사한 코드를 작성할 수 있습니다. /* Get actor code, stored in myActor variable */ // Case1 : Cast auto tmp = Cast(myActor); if(IsValid(tmp)) { } // Case2 : if(myActor == Cast(AMyObject::StaticClass())) { } 위와 같이 블루프린트의 상황을 흉내..
-
[Unreal Engine] UFUNCTION override (BlueprintNativeEvent)Unreal Engine 5._ 2023. 2. 7. 12:23
지난 글 (UFUNCTION override (C++))에서, UFUNCTION선언을 한 C++함수를 C++에서 오버라이드 하는 방법을 살펴보았습니다. C++의 함수를 블루프린트에서 오버라이드 하는 방법은 조금 다릅니다. 이번 글에서는 C++의 함수를 블루프린트에서 오버라이드 하는 방법을 살펴보도록 하겠습니다. 1. BlueprintNativeEvent 더보기 C++의 UFUNCTION을 오버라이드하려면 특별한 과정을 거쳐야 합니다. 첫 번째로, 오버라이드 하려는 함수는 UFUNCTION매크로에 BlueprintNativeEvent인자를 지정해야 합니다. 두 번째로, 특정한 함수를 추가해야 합니다. 위 두가지 과정을 거친 코드는 아래와 같습니다. UFUNCTIONO(BlueprintNativeEvent)..
-
[Unreal Engine] UFUNCTION UPARAM : Rename, Relocate paramsUnreal Engine 5._ 2023. 1. 31. 16:22
이전 글 (UFUNCTION Multiple return values)에서 반환 핀을 늘리는 방법을 알아보았습니다. 파라미터를 참조로 설정하면 되는 것 이었는데, 이 경우 아래와 같은 문제가 발생합니다. 입력이 참조여야 할 경우에는 어떻게 하는가? 이번 글에서는 위 의문에 대해 살펴보도록 하겠습니다. 참조를 입력으로 받는 방법은 두 가지가 있습니다. 첫 번째는, const에 대한 참조를 받는 것 입니다. UFUNCTION(BlueprintCallable) static int32 MyFunction( int32 A, const int32& B, int32 C, const int32& D ) 위 코드는 이전 글에 예시로 보여드린 함수의, 참조 부분을 const로 바꾼 것 입니다. 반환 핀으로 있던 B, D가..
-
[Unreal Engine] UFUNCTION override (C++)Unreal Engine 5._ 2023. 1. 31. 13:57
UFUNCTION은 중복해서 사용할 수 없습니다. 구체적으로, A::Function이 UFUNCTION이고, A를 상속받는 B::Function이 UFUNCTION일 경우 이를 컴파일 하면 다음과 같은 에러와 함께 컴파일이 되지 않습니다. Override of UFUNCTION in parent class cannot have a UFUNCTION() declaration above it; it will use the same parameters as the original declaration. 이와 관련하여, UFUNCTION함수를 오버라이드 하는 방법을 살펴보도록 하겠습니다. 서론의 에러 메시지는 직관적입니다. 메시지에 따르면 상속 구조에서 상위 클래스의 UFUNCTION은 하위 클래스에 사용할 수..
-
[Unreal Engine] UFUNCTION Multiple return valuesUnreal Engine 5._ 2023. 1. 26. 18:55
함수가 여러 개의 값을 반환해야 하는 경우가 존재합니다. 반환해야 하는 타입이 같다면 배열로 반환하면 되겠지만, 그렇지 않은 경우가 있습니다. 언리얼, 특히 블루프린트에서는 특정 기능의 성공 여부의 bool값을 같이 반환하는 경우가 있습니다. 이번 글에서는 C++의 함수를 UFUNCTION으로 블루프린트에서 사용할 때, 여러 값을 반환하는 경우를 알아보도록 하겠습니다. 다음 C++함수를 살펴보도록 하겠습니다. MyActor.h UFUNCTION(BlueprintCallable) static int32 MyFunction( int32 A, int32& B, int32 C, int32& D ) 위와 같은 함수를 정의, 구현했다고 가정할 경우, 블루프린트에서는 해당 함수를 아래와 같이 사용할 수 있습니다. 참..
-
[Unreal Engine] Forum : Blueprint access C++ static functionUnreal Engine 5._ 2023. 1. 26. 16:56
C++의 함수를 블루프린트에서 사용하려면, 다음과 같이 UFUNCTION매크로에 BlueprintCallable인자를 넣어주면 됩니다. UFUNCTION(BlueprintCallable) void Function(); 이 함수는 이제 블루프린트에서 호출할 수 있는 함수가 되어, 다음과 같이 사용할 수 있습니다. 하지만 이 경우 호출하려는 주체 (인스턴스)가 필요합니다. 다른 블루프린트 함수처럼 인스턴스 없이 작동하는 함수를 만드는 방법을 찾아보았고, 그 내용을 공유하려 합니다. Can I create a static function in C++ which I can access from any Blueprint? 당연하겠지만, 정답은 함수를 static으로 선언하는 것 이었습니다. MyActor.h UF..
-
[Unreal Engine] Delay : UKismetSystemLibrary::Delay, SetTimer()Unreal Engine 5._ 2023. 1. 24. 17:14
언리얼의 블루프린트에는 Delay 노드가 존재합니다. (구체적으로는 Delay와 Delay Until Next Tick 입니다.) 이 노드들은 선택한 시간, 혹은 다음 틱까지 이벤트의 실행을 중지시키는 역할을 합니다. 지정된 시간동안 실행을 지연시키는 역할을 하는 이 노드는, C++에서는 UKiUKismetSystemLibrary의 메소드로 존재합니다. 다만, 이를 코드로 확인해보면 블루프린트와는 다른 모습을 볼 수 있습니다. 이번 글에서는 C++에서 블루프린트의 Delay 기능을 사용하는 방법을 살펴보도록 하겠습니다. 1. 개요 & FLatentActionInfo 더보기 C++에 구현된 Delay 관련 함수는 다음과 같습니다. UKismetSystemLibrary::Delay UKismetSystemL..