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
반응형
'[ Unreal5 ] > - 언리얼엔진5 실습' 카테고리의 다른 글
| 언리얼엔진5 c++ Old Input System 사용하는 방법 정리 (0) | 2026.03.19 |
|---|---|
| 스팀 게임 출시 가이드2 (UE 게임 Steam 업로드) (0) | 2026.01.27 |
| 언리얼엔진5 Lighting SpringArm을 통해서 충돌 구조 (0) | 2025.11.11 |
| 언리얼엔진5 Lighting Channels로 캐릭터 전용 라이트 분리하기(BP+C++) (0) | 2025.11.11 |
| 언리얼엔진5 c++ TMap과 Enum 한 번에 초기화하기 (0) | 2025.09.30 |
댓글