inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

3강 : 캐릭터의 입력 처리

ASC GiveAbility 질문드립니다.

해결된 질문

346

kr36

작성한 질문수 4

0

안녕하세요.

저는 무기 아이템 액터가 무기를 휘두르는 몽타주를 재생하는 어빌리티를 멤버 변수로 갖고 있게 하고,

해당 무기를 장착했을 때 무기의 어빌리티를 매개변수로 전달받아 어빌리티를 활성화 하도록 구현하려고 하는데요.

이 경우에 어빌리티를 활성화하고 등록된 어빌리티를 다시 제거해 줄 필요는 없을까요?

같은 무기를 여러번 장착할 수도 있을텐데 ASC에 같은 어빌리티 여러 개가 등록되어 있는게 문제가 될 수도 있지 않나 해서 질문드립니다.

unreal-engine ue-blueprint unreal-engine5 언리얼-c++ gas

답변 1

1

이득우

네 ASC가 관리하는 어빌리티 목록은 FGameplayAbilitySpec의 TArray 로 구성되어 있고, GiveAbility 함수에서는 별도의 중복체크는 없이 추가합니다.

FGameplayAbilitySpec& OwnedSpec = ActivatableAbilities.Items[ActivatableAbilities.Items.Add(Spec)];

따라서 중복을 피하고 싶다면 FindAbilitySpecFrom 계열의 함수를 사용해 해당 스펙이 있는지 미리 점검한 후 추가해주면 될 것 같습니다.
다만 이 경우 자료 구조가 TArray다보니 선형 탐색 O(N)이 일어나므로, 현재 ASC에 소유중인 어빌리티가 너무 많은 경우 별도의 Set이나 Map을 추가하는 것을 고려해보시면 되겠습니다.

0

kr36

답변 감사합니다.

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