본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 c++ MontageEnd

by MRG 2026. 3. 9.
728x90
반응형

 

private:
	UPROPERTY(EditAnywhere)
	UAnimMontage* AttackMontage;

	UFUNCTION()
	void OnAttackMontageEnded(UAnimMontage* Montage, bool bInterrupted);

	PlayerStates playerState = PlayerStates::NONE;
};

 

void APlayerCharacterBase::Attack()
{
	playerState = PlayerStates::ATTACK;

	UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance();

	if (AnimInstance)
	{
		FOnMontageEnded EndDelegate;
		EndDelegate.BindUObject(this, &APlayerCharacterBase::OnAttackMontageEnded);//몽타지 종료 델리게이트 연결

		AnimInstance->Montage_SetEndDelegate(EndDelegate, AttackMontage); //몽타지가 끝날 때 위 콜백을 호출하도록 설정

		if (AttackMontage)
		{
			AnimInstance->Montage_Play(AttackMontage);
		}
	}

	
}

 

▣ 추가로 꼭 알아둘 것(초보자 최소 체크)
몽타주가 재생되려면 AnimBP 애님 그래프에 해당 Slot 노드가 연결되어 있어야 합니다. 슬롯이 없으면 재생이 기대대로 안 되거나, 보이는 동작이 안 나옵니다.
같은 몽타주를 여러 번 재생할 때는 SetEndDelegate가 “그 몽타주에 대한 콜백을 최신 설정으로 덮어쓴다” 정도로 이해하면 됩니다

728x90
반응형

댓글