언어:
페이지 정보
엔진 버전:
언리얼 엔진

다이내믹 델리게이트

언리얼 엔진

다이내믹 델리게이트는 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()

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