UE(GAS) - GetActivatableAbilities()
2024. 8. 7. 01:16ㆍUnreal Engine
- 어빌리티 목록 가져오기: GetActivatableAbilities()는 AbilitySystemComponent에 설정된 모든 활성화 가능한 어빌리티의 목록을 반환합니다. 이 목록은 FGameplayAbilitySpec 구조체로 구성된 배열로, 각 구조체는 개별 어빌리티에 대한 정보를 담고 있습니다.
- 어빌리티 사양: FGameplayAbilitySpec은 어빌리티의 인스턴스를 설명하는 구조체로, 어빌리티 클래스, 레벨, 소유자 정보, 인풋 바인딩 등을 포함하고 있습니다.
- 읽기 전용 접근: 이 함수는 const 멤버 함수로, 어빌리티 목록을 읽기 전용으로 액세스하는 데 사용됩니다. 즉, 이 함수는 어빌리티 목록을 수정하지 않으며, 단순히 현재 등록된 어빌리티의 정보를 조회합니다.
- 활성화 가능 여부: 이 목록은 "활성화 가능"한 어빌리티의 리스트를 반환하지만, 실제로 해당 어빌리티가 현재 조건에서 활성화될 수 있는지는 별도의 논리로 판단되어야 합니다. 예를 들어, 특정 조건(쿨다운, 리소스 부족 등) 때문에 실제로는 활성화되지 않을 수도 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include "AbilitySystemComponent.h"
#include "GameplayAbilitySpec.h"
void PrintActivatableAbilities(UAbilitySystemComponent* AbilitySystem)
{
if (AbilitySystem)
{
const FGameplayAbilitySpecContainer& Abilities = AbilitySystem->GetActivatableAbilities();
for (const FGameplayAbilitySpec& Spec : Abilities.Items)
{
if (Spec.Ability)
{
UE_LOG(LogTemp, Log, TEXT("Ability: %s, Level: %d"), *Spec.Ability->GetName(), Spec.Level);
}
}
}
}
|
cs |
이 코드는 AbilitySystemComponent에서 활성화 가능한 어빌리티의 이름과 레벨을 로그로 출력합니다. 이처럼 GetActivatableAbilities()는 현재 컴포넌트에 바인딩된 어빌리티의 전체 리스트를 확인하는 데 유용합니다.
요약
- 목적: GetActivatableAbilities()는 AbilitySystemComponent에 바인딩된 모든 활성화 가능한 어빌리티의 정보를 반환합니다.
- 반환값: FGameplayAbilitySpecContainer는 어빌리티 사양을 담고 있으며, 이를 통해 어빌리티의 특성 및 상태를 확인할 수 있습니다.
- 활용: 어빌리티 상태를 확인하거나 특정 조건에 맞는 어빌리티를 필터링하는 데 사용할 수 있습니다.
'Unreal Engine' 카테고리의 다른 글
UE(GAS) - IsNetMode() (0) | 2024.08.20 |
---|---|
UE(GAS) - AbilitySpecInputPressed() (0) | 2024.08.07 |
UE - TBaseStaticDelegateInstance (0) | 2024.08.04 |
UE(GAS) - GameplayEffect의 FGameplayEffectContextHandle과 FGameplayEffectSpecHandle (0) | 2024.07.25 |
UE(GAS) - SetReplicationMode()와 SetIsReplicated() (0) | 2024.07.25 |