ASC GiveAbility 질문드립니다.
안녕하세요.
저는 무기 아이템 액터가 무기를 휘두르는 몽타주를 재생하는 어빌리티를 멤버 변수로 갖고 있게 하고,
해당 무기를 장착했을 때 무기의 어빌리티를 매개변수로 전달받아 어빌리티를 활성화 하도록 구현하려고 하는데요.
이 경우에 어빌리티를 활성화하고 등록된 어빌리티를 다시 제거해 줄 필요는 없을까요?
같은 무기를 여러번 장착할 수도 있을텐데 ASC에 같은 어빌리티 여러 개가 등록되어 있는게 문제가 될 수도 있지 않나 해서 질문드립니다.
답변 1
1
네 ASC가 관리하는 어빌리티 목록은 FGameplayAbilitySpec의 TArray 로 구성되어 있고, GiveAbility 함수에서는 별도의 중복체크는 없이 추가합니다.
FGameplayAbilitySpec& OwnedSpec = ActivatableAbilities.Items[ActivatableAbilities.Items.Add(Spec)];따라서 중복을 피하고 싶다면 FindAbilitySpecFrom 계열의 함수를 사용해 해당 스펙이 있는지 미리 점검한 후 추가해주면 될 것 같습니다.
다만 이 경우 자료 구조가 TArray다보니 선형 탐색 O(N)이 일어나므로, 현재 ASC에 소유중인 어빌리티가 너무 많은 경우 별도의 Set이나 Map을 추가하는 것을 고려해보시면 되겠습니다.
OnInterruptedCallback()으로 몽타주가 중간에 취소될 경우 CancelAbility를 호출하는게 맞을까요 ?
0
38
1
HasMatchingGameplayTag 역활이 조금 이해가 안갑니다.
0
45
1
캐릭터 스탯 초기 설정 방법 질문
0
86
2
언라얼 공식 홈페이지 튜토리얼 강의에 질문 있습니다
0
84
2
StartAbility, StartInputAbility 둘 다 GiveAbility를 호출해야하나요?
0
75
2
AnimNotify 구현 질문
0
102
2
[6강] ShowDebug에서 Attributes for avater가 변하지 않아요..
0
78
2
4강에서 콤보 공격시 다음 공격을 할 경우 ActivateAbility가 자동으로 발동되는 이유
0
112
2
9강 44:59 부분에서 질문이 있습니다.
0
78
2
8강 24:22 CurrentAttributeSet 질문입니다.
0
65
2
ASC 에서 AttributeSet 함수에 대한 mutable 반환 함수가 없는 이유
0
85
2
SetupGASInputComponent 함수 호출위치가 이해가안갑니다.
0
145
3
[GAS] Player State에 대해 궁금한 점이 있습니다.
0
134
2
AnimNotify를 GA에서 받는방법이 있을까요?
0
84
2
ABP의 skeleton 오류
0
115
1
장판스킬을 만들때 콜리전설정
0
174
2
어빌리티의 쿨다운 GameEffect에 대하여
0
261
2
GAS 구조로 멀티 플레이 게임을 제작할려고 하는데요
0
227
2
5.4버전 기준으로 Remove Gameplay Effect With Tags가 안 보입니다.
0
282
3
8강의 수업 내용들 중 이해가 잘 안가는 부분들이 있습니다.
0
209
2
7강 GE로 NonPlayer의 어트리뷰트셋 값을 초기화시키는 것에 질문이 있습니다.
0
110
2
7강 정리했는데 검토부탁드려요
0
125
1
5강 정리해봤는데 검토부탁드립니다.
0
134
2
4강의 CreateTask 함수 질문입니다,
0
158
2





