GameplayEffect는 단순 효과 적용이었다면, GameplayAbility는 스킬이다.
로직 실행이 최우선 목적이며, 당연히 원한다면 GameplayEffect도 적용 가능하다.
일단 먼저 Tags에 대해 알아보자.
좀 많긴 한데 있으면 다 편리하다.
예를 들어 은신 상태일 때 공격하면 은신이 풀리는 걸 구현하고 싶다면?
Cancel Abilities with Tag 쓰면 된다.
아군에겐 사용할 수 없는 스킬을 구현하고 싶다면?
Target Blocked Tags 쓰면 된다.
정말 편리하다.
아래에 표로 정리하겠다.
이름 | 설명 |
---|---|
Ability Tags | 이 어빌리티 자체에 지정할 태그들 |
Cancel Abilities with Tag | 이 어빌리티가 실행되면, 이 태그를 가진 다른 어빌리티들이 취소됨 |
Block Abilities with Tag | 이 어빌리티가 활성화된 동안, 이 태그를 가진 다른 어빌리티들은 활성화될 수 없음 |
Activation Owned Tags | 이 어빌리티가 활성화된 동안, 시전자(Activating Actor)에게 임시로 부여되는 태그 |
Activation Required Tags | 이 어빌리티를 실행하려면, 시전자에게 이 태그가 모두 있어야 함 |
Activation Blocked Tags | 이 태그 중 하나라도 시전자에게 있다면, 어빌리티는 실행되지 않음 |
Source Required Tags | Source 액터/컴포넌트에게 이 태그가 모두 있어야 활성화됨 |
Source Blocked Tags | Source 액터/컴포넌트가 이 태그 중 하나라도 갖고 있다면, 어빌리티는 실행되지 않음 |
Target Required Tags | Target 액터/컴포넌트에게 이 태그가 모두 있어야 활성화됨 |
Target Blocked Tags | Target 액터/컴포넌트가 이 태그 중 하나라도 갖고 있다면, 어빌리티는 실행되지 않음 |
Activating Actor와 Source가 헷갈릴 수 있다.
Activating Actor는 Ability를 실행한 AbilitySystemComponent의 OwnerActor이며,
Source는 별다른 설정 없이 Ability를 실행할 경우 Activating Actor와 동일하고
GameplayEffectContextHandle을 만들 때 수동으로 설정이 가능하다.
Input 탭
Advanced 탭