[UE5] 델리게이트 (Delegate)

수민·2023년 10월 7일
0

[Unreal5] Study

목록 보기
4/4
post-thumbnail

델리게이트

c++에서 함수 포인터를 이용했던 것 대신,
언리얼 C++에서는 델리게이트를 제공해준다.

Delegate는 한국어로 대리자를 의미한다.

Delegate는 함수를 참조하는 대리자이다.

델리게이트를 통해서 C++ 오브젝트의 멤버함수 호출을 안전하게 할 수 있다.

델리게이트의 특징

  1. 함수 포인터가 아니라 Delegate를 통해 함수를 호출한다.

  2. 하나의 Delegate에 동일한 형의 함수들을 여러개 바인딩해서 동시에 호출할 수 있다.

    델리게이트 종류

    싱글캐스트 (SingleCast)

    가장 기본적인 델리게이트.
    하나의 함수를 바인딩해주는 델리게이트.
    ~Bind~ 메소드를 사용해서 바인딩해준다.

    멀티캐스트

    여러 개의 함수를 바인딩해줄 수 있는 델리게이트
    ~Add~ 메소드를 사용해서 바인딩해준다.

    다이나믹 캐스트

    블루프린트에서 사용 가능한 델리게이트
    싱글, 멀티 모두 존재한다.

    델리게이트에 함수 바인딩하기

    전역 C++ 함수 : BindStatic
    전역 C++ 람다 함수 : BindLambda
    C++ 클래스 멤버 함수 : BindLaw
    공유포인터 클래스의 멤버함수 (쓰레드 미지원) : BindSP
    공유포인터 클래스의 멤버함수 (쓰레드 지원) : BindThreadSafeSP
    UFUNCTION 멤버함수 : BindUFunction
    언리얼오브젝트의 멤버함수 : BindUObject

    델리게이트 실행하기

    Execute : 걍 실행
    ExecuteIfBound : 바인딩되었다면 실행하기 (안전) - 반환값이 없는 경우 사용 가능
    IsBound : 델리게이트가 바인딩되었는지 확인


    참고
    https://koreanfoodie.me/919
    https://hyo-ue4study.tistory.com/287
    https://wecandev.tistory.com/94

profile
우하하

0개의 댓글