언리얼 델리게이트

Lee Raccoon·2024년 5월 18일
0

언리얼 공부

목록 보기
6/11

언리얼 델리게이트

언리얼 델리게이트

델리게이트는 C++ 오브젝트 상의 멤버 함수 호출을 안전하게 할 수 있는 방식이다.
이를 사용하여 임의 오브젝트의 멤버 함수에 동적으로 바인딩 시킬 수 있고
이후 그 오브젝트에서 함수를 호출할 수 있다.
호출하는 곳에서 오브젝트의 유형을 몰라도 말이다!

델리게이트는 가급적이면 참조 전달을 사용해야하는데, 이는 값으로 전달이 가능은 하나 heap에 메모리를 할당해야하기 때문이다.

선언

델리게이트 선언은 제공되어 있는 선언 매크로 중 하나로 이루어진다.
사용되는 매크로는 바인딩되는 함수의 시그니처에 따라 결정된다.

  • 값을 반환하는 함수
  • 페이로드 변수 (4개 까지)
  • 함수 파라미터 (8개 까지)
  • 'const'로 선언된 함수
DECLARE_멀티캐스트, 다이나믹_DELEGATE_값 반환_파라미터 갯수
(리턴 타입, 델리게이트 이름, 파라미터들 ...)

이 항목들의 조합으로 델리게이트 시그너처가 지원된다.

바인딩

  • Bind() : 기존 델리게이트 오브젝트에 바인딩
  • BindStatic : raw C++ 포인터 글로벌 함수 바인딩
  • BindRaw() : raw C++ 포인터 바인딩
  • BindSP() : SharedPointer 기반 멤버 함수 바인딩
  • BindUObject() : UObject 기반 멤버 함수 바인딩
  • UnBind() : 바인딩 해제

실행

  1. 호출했으면 하는 메서드에 맞는 매크로를 통해 델리게이트 유형을 선언한다.
  2. 생성한 델리게이트 이름으로 델리게이트를 만들어준다
  3. 호출했으면 하는 메서드를 가진 클래스의 인스턴스를 생성하고, 호출할 메서드와 함께 바인딩해준다.
profile
영차 영차

0개의 댓글