728x90
안녕하세요.
언리얼 엔진 5 (UE5)에서 "Gameplay Ability System" (GAS)을 사용하여 특정 GameplayTag가 추가되거나 제거될 때 알림을 받으려면 UAbilitySystemComponent를 사용해야 합니다. 다음은 그 방법에 대한 예제입니다:
- 캐릭터 클래스 수정하여 UAbilitySystemComponent 사용하기:
// 생성자
AYourGameCharacter::AYourGameCharacter()
{
// Ability System Component 초기화
AbilitySystemComponent = CreateDefaultSubobject<UAbilitySystemComponent>(TEXT("AbilitySystemComponent"));
// 델리게이트 바인딩
AbilitySystemComponent->RegisterGameplayTagEvent(FGameplayTag::RequestGameplayTag(FName("MySpecialTag")), EGameplayTagEventType::NewOrRemoved).AddUObject(this, &AYourGameCharacter::OnTagChanged);
}
void AYourGameCharacter::OnTagChanged(const FGameplayTag CallbackTag, int32 NewCount)
{
if (NewCount > 0)
{
UE_LOG(LogTemp, Warning, TEXT("MySpecialTag Added: %s"), *CallbackTag.ToString());
// MySpecialTag가 추가될 때의 추가 로직
}
else
{
UE_LOG(LogTemp, Warning, TEXT("MySpecialTag Removed: %s"), *CallbackTag.ToString());
// MySpecialTag가 제거될 때의 추가 로직
}
}
이 코드에서:
- AbilitySystemComponent가 생성자에서 초기화됩니다.
- RegisterGameplayTagEvent 함수를 사용하여 특정 태그 이벤트에 OnTagChanged 함수를 바인딩합니다.
- OnTagChanged 함수는 NewCount를 확인하여 태그가 추가되었는지 (NewCount > 0) 또는 제거되었는지 (NewCount == 0)를 판단합니다.
이 설정을 통해 UE5의 Gameplay Ability System을 사용하여 특정 GameplayTag MySpecialTag가 추가되거나 제거될 때 알림을 받을 수 있습니다.
728x90
'프로그래밍' 카테고리의 다른 글
"Local modification of AttachParent detected for replicated component , disable replication or execute detachment on host" 경고 발생 원인 및 수정 in 언리얼5 (0) | 2024.12.17 |
---|---|
Unreal Engine 5에서 동적으로 Tick 제어하기 (1) | 2024.12.03 |
디버그에 유용한 ensureMsgf in 언리얼5 (1) | 2024.11.24 |
IgnoreActorWhenMoving란? (0) | 2024.11.23 |
언리얼 엔진 5에서의 스윕 테스트 함수들: SweepMultiByObjectType, SweepTestByObjectType (1) | 2024.11.17 |