다이내믹 델리게이트

serialize 가능하면서 리플렉션도 지원하는 델리게이트입니다.

Windows
MacOS
Linux

다이내믹 델리게이트는 serialize 가능하며, 그 함수를 이름으로 찾을 수도 있으나, 일반 델리게이트보다는 느립니다.

다이내믹 델리게이트 선언하기

다이내믹 델리게이트의 선언은, 다이내믹 델리게이트 전용 변종 매크로를 사용한다는 점만 빼고는 표준 델리게이트 선언 시와 같은 방법으로 선언합니다.

선언 매크로

설명

DECLARE_DYNAMIC_DELEGATE[_RetVal, etc.]( DelegateName )

다이내믹 델리게이트를 생성합니다.

DECLARE_DYNAMIC_MULTICAST_DELEGATE[_RetVal, etc.]( DelegateName )

다이내믹 멀티-캐스트 델리게이트를 생성합니다.

다이내믹 델리게이트 바인딩

헬퍼 매크로

설명

BindDynamic( UserObject, FuncName )

다이내믹 델리게이트에서 BindDynamic() 호출을 위한 헬퍼 매크로입니다. 함수 이름 문자열을 자동 생성합니다.

AddDynamic( UserObject, FuncName )

다이내믹 멀티-캐스트 델리게이트에서 AddDynamic() 호출을 위한 헬퍼 매크로입니다. 함수 이름 문자열을 자동 생성합니다.

RemoveDynamic( UserObject, FuncName )

다이내믹 멀티-캐스트 델리게이트에서 RemoveDynamic() 호출을 위한 헬퍼 매크로입니다. 함수 이름 문자열을 자동 생성합니다.

다이내믹 델리게이트 실행하기

델리게이트에 바인딩된 함수는 델리게이트의 Execute() 함수를 호출하여 실행됩니다. 델리게이트를 실행하기 전 "바인딩" 되었는지 반드시 확인해야 합니다. 이는 코드 안전성을 도모하기 위함인데, 초기화되지 않은 상태로 접근이 가능한 반환값과 출력 파라미터가 델리게이트에 있을 수 있기 때문입니다. 바인딩되지 않은 델리게이트를 실행시키면 일부 인스턴스에서 메모리에 낙서를 해버릴 수가 있습니다. 델리게이트가 실행해도 안전한 지는 IsBound() 를 호출하여 검사해 볼 수 있습니다. 또한 반환값이 없는 델리게이트에 대해서는 ExecuteIfBound() 를 호출할 수 있으나, 출력 파라미터는 초기화되지 않을 수 있다는 점 주의하시기 바랍니다.

실행 함수

설명

Execute()

ExecuteIfBound()

IsBound()

멀티-캐스트 델리게이트 관련 자세한 내용은 멀티캐스트 델리게이트 페이지를 확인하시기 바랍니다.

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼