먼저 AbilitySystem은 Tag를 이용해서 개체에 대해 식별, 분류, 일치 및 필터링하는데 사용하게 된다.
프로젝트 세팅 -> GameplayTags에 들어가 필요한 태그를 만들어서 세팅해준다.
태그를 만든 후 Input Action을 담을 DataAsset클래스를 만들어 준다.
언리얼 엔진 툴에서 입력 액션에 필요한 액션들을 만들고 컨텍스트에 추가해 준다.
언리얼 엔진 툴에서 방금 만든 Data Asset 클래스가 노출이 되며 이를 선택하여 만들어 준다.
그럼 TArray로 만든 AbilityInputActions가 있으며 이는 FBVInputAction 구조체이고 이를 설정해준다.
EnhancedInput 클래스를 만들어 주고 바인딩에 필요한 객체들을 받아오게 만들어 준다.
이때 Pressed, Released, Held 3개에 대해 키입력 함수를 받아오며 바인딩 시켜 준다.
이제 PlayerController로 돌아와 DataAsset을 넣을수 있는 변수와 Pressed, Released, Held 함수를 만들어 주고
SetupInputComponent에서 방금 만든 EnhancedInput의 AbilityBind함수를 호출 시켜준다.
마지막으로 프로젝트 세팅 -> 입력 에서 Default Classes에 기본 입력 컴포넌트 클래스를 방금만든 EnhancedInput클래스로 바꿔준다.
이제 실행해서 테스트를 해보면 1초정도 누르고 마우스를 때면 Pressed는 1번 Held는 누르고 있는동안 Released는 마우스를 땔때 잘 나오는걸 확인 할 수 있다.
이를 통해 Pressed, Released, Held 함수를 이용하여 알맞게 능력을 구한하면 될것 같다.
예를들면 Held에선 기를 모으는 능력을 구현한다 던지 Pressed는 기본공격 1회를 한다던지 하면 될것같다.
'언리얼 > 개발일지' 카테고리의 다른 글
언리얼5 공부 및 개발일지 7일차 어빌리티 시스템 능력 구현 (0) | 2023.09.30 |
---|---|
언리얼5 공부 및 개발일지 6일차 무기 구현 (0) | 2023.09.30 |
언리얼5 공부 및 개발일지 4일차 어빌리티 시스템 UI (0) | 2023.09.23 |
언리얼5 공부 및 개발일지 3일차 어빌리티 시스템 AttributeSet세팅 (0) | 2023.09.21 |
언리얼5 공부 및 개발일지 2일차 캐릭터 애니메이션 추가 (0) | 2023.09.21 |