본문 바로가기

프로그래밍

언리얼 엔진 5에서 "Gameplay Ability System"을 사용하여 특정 태그 추가/제거 알림 받기

728x90

 

안녕하세요.

언리얼 엔진 5 (UE5)에서 "Gameplay Ability System" (GAS)을 사용하여 특정 GameplayTag가 추가되거나 제거될 때 알림을 받으려면 UAbilitySystemComponent를 사용해야 합니다. 다음은 그 방법에 대한 예제입니다:

  1. 캐릭터 클래스 수정하여 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