언리얼에서 함수를 바인드 하는 방식은 크게 두가지가 있다
🔹 BindUFunction (UFunction 바인딩)
FOnTimelineFloat ProgressFunction;
ProgressFunction.BindUFunction(this, FName("UpdateCameraOffset"));
AimTimeline->AddInterpFloat(AimCurve, ProgressFunction);
이건 내가 조준점을 확대할때, Float 값에 따라서 값이 변하게끔 AimTimeline을 설정해둔 것이다.
BindUFunction의 특징으론
- BindUFunction은 함수 이름을 문자열(FName)로 전달하여 바인딩.
- UFunction Reflection 시스템을 이용하여 실행.
- 런타임에만 바인딩 가능, Compile-Time에는 확인할 수 없음.
- 빠르게 바인딩 가능하지만, AddDynamic보다 약간의 성능 오버헤드가 있음.
- Blueprint에서 만든 UFunction과도 연결 가능.
이 될수 있겠다.
다음으론 ADDDynamic 이다.
🔹 AddDynamic (Dynamic Delegate 바인딩)
함수 델리게이트를 선언 혹은 선언된 델리게이트를 가지고 Broadcast() 시 선언된 특정 함수에 가서 작동을 같이 하는것이다.
특징으론
✅ 특징:
- AddDynamic은 Compile-Time에서 함수 주소를 직접 바인딩.
- 엄격한 타입 체크가 가능하여, 컴파일 시 오류를 잡을 수 있음.
- Unreal Engine의 UFUNCTION() 매크로가 필요.
- 바인딩하려는 함수는 반드시 UFUNCTION()이 선언되어 있어야 함.
주의점:
- UFUNCTION이 아닌 함수는 바인딩 불가능.
- 블루프린트에서 만든 함수와 연결 불가능.
'Unreal Engine 5' 카테고리의 다른 글
| 언리얼에서의 안전한 정규화(단위벡터 사용법) (0) | 2025.01.29 |
|---|---|
| 언리얼 엔진에서의 메모리 관리 방식 (0) | 2025.01.29 |
| 언제 TOptional 과 TMap 을 사용해야할까? (0) | 2025.01.28 |
| Unreal Interface CPP (0) | 2025.01.14 |
| 언리얼 CPP 에서 Enum을 BlackBoard로 가져오는방법 (0) | 2025.01.03 |