인프런 커뮤니티 질문&답변

BlurryFace님의 프로필 이미지
BlurryFace

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

5강 캐릭터 콤보 액션

5강 Montage_SetEndDelegate()함수 관련

작성

·

404

0

FOnMontageEnded EndDelegate;

EndDelegate.BindUObject(this, &AABCharacterBase::ComboActionEnd);

AnimInstance->Montage_SetEndDelegate(EndDelegate, ComboActionMontage);

Montage_SetEndDelegate 함수를 보면,

AnimMontage클래스에서 AM이 종료되면 호출시키는 FOnMontageEnded타입의 델리게이트 변수를, 위 함수의 인자로 받는 델리게이트 변수와 치환해서(=) 실행되는 것으로 이해했습니다.

 

그렇다면 구현되어있는 델리게이트 변수에 ComboActionEnd함수를 바로 구독시키면 안되는건지 궁금해서 여쭤봅니다..

답변 1

0

이득우님의 프로필 이미지
이득우
지식공유자

애님 인스턴스의 Montage_SetEndDelegate 함수가 델리게이트를 요구하기때문에 그에 맞춰서 작성했습니다. 몽타주 객체가 가지고 있는 OnMontageEnded 델리게이트에 직접 바인딩해도 무방하겠습니다만, 결과는 동일할 것으로 보여집니다.
아래는 Montage_SetEndDelegate 함수 소스입니다. 몽타주 객체가 가지고 있는 OnMontageEnded 델리게이트를 바꿔치기하는 것을 볼 수 있습니다.

if (Montage)
{
	FAnimMontageInstance* MontageInstance = GetActiveInstanceForMontage(Montage);
	if (MontageInstance)
	{
		MontageInstance->OnMontageEnded = InOnMontageEnded;
	}
}


BlurryFace님의 프로필 이미지
BlurryFace

작성한 질문수

질문하기