언리얼엔진/디자인패턴3 [델리게이트] 정적-1개, 동적-멀티 델리게이트의 차이 FScriptDelegate DECLARE_DYNAMIC_MULTICAST_DELEGATE 정적 vs 동적 선언 정적으로 델리게이트 선언 -> 컴파일 타임에만 델리게이트가 생성됨 주로 C++코드에서 다른 C++코드에 대한 이벤트 처리에 사용 동적으로 델리게이트 선언 ->런타임 중에도 델리게이트에 대한 함수 바인딩 및 이벤트 등록이 가능 주로 블루프린트와 C++코드 간 상호작용에 사용 블루프린트 호환성 C++클래스에서 블루프린트 클래스로 노출시켜야 사용가능함 블루프린트 클래스에서 노출할 수 있고, 델리게이트에 함수를 바인딩하고 이벤트에 대한 리스너 추가 가능 멀티캐스트 지원 멀티캐스트 이벤트를 직접 지원하지 않아 한 번에 한 개의 리스너만 호출 한 번에 여러 리스너가 호출될 수 있음 2024. 2. 11. [델리게이트 패턴] 아이템 습득 구현 충돌 관계는 캐릭터 - 아이템 클래스 사이에 Overlap으로 설정해둔다. 이건 지뢰 클래스인데, 오버랩 됐을 때 파티클을 실행하는 건 같아서 그냥 이걸로 포스팅하겠다.. void ASLandMine::BeginPlay() { Super::BeginPlay(); ... if (false == OnActorBeginOverlap.IsAlreadyBound(this, &ThisClass::OnLandMineBeginOverlap)) { OnActorBeginOverlap.AddDynamic(this, &ThisClass::OnLandMineBeginOverlap); } } 내 경우에는, 지뢰에 캐릭터가 오버랩되면 OnLandMineBeginOverlap()함수를 실행하도록 하였다. 이를 위해서 OnActor.. 2024. 2. 7. [델리게이트] 2개의 매개변수를 가진 DELEGATE DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnCurrentEXPChangedDelegate, float, InOldCurrentEXP, float, InNewCurrentEXP); -> 이것은 동적 바인딩이 가능하고 멀티 캐스트인 델리게이트이다. 매개변수는 자매품인 ThreeParams.. 등등을 사용해서 다양한 갯수로 설정할 수 있다. 이 델리게이트는 2개의 매개변수가 설정되어있기때문에, 바인딩 할 함수도 모두 매개변수가 2개여야 함. 델리게이트는 보통 Set 함수에서 부른다. 2024. 1. 24. 이전 1 다음