GameAbilitySystem 환경 세팅

Lee Raccoon·2024년 8월 6일
0
post-thumbnail

GAS 적용하기

GAS를 적용하기 위해서 우선 Ability System ComponentAbility Set을 추가해 볼 것이다.
근데 생각해보아야 할점.
언리얼을 하면서 얼마나 많이 생각하던 것인가
바로바로

어디에 추가해야하는가?

Pawn에 GAS를 적용하고 싶다면, Pawn 클래스 자체에 해야하나?
또 다른 방법이 있나?

우선 두가지 선택지가 있다.

Pawn Vs Player State

Pawn 클래스에 추가했을 때와 Player State에 추가 했을 때의 차이점이 무엇이 있을까?
이 두 방식의 큰 차이점 중 하나는 Pawn이 사라졌을 때, 이 컴포넌트가 남아있는가 하는 것이다.

만약 게임에서 플레이어가 죽거나 다른 어떤 게임 내 조작으로 캐릭터가 사라진 상황이라 치자.
그럼 Pawn에 컴포넌트가 있던 쪽은 다시 Pawn이 생성되면 어빌리티가 초기화될 것이다.

사라질 때 저장하고 생성될 때 로드하는 뭐 그런 기능을 만들 수도 있겠지만 Player State가 더 편리하다.
Pawn이 사라져도 Player State는 남아있기 때문에, 새로운 폰이 생긴다면 그대로 연결만 해주면 되기 때문!

그런데 뭐 굳이 상관 없이 Pawn에다가 컴포넌트를 바로 넣는게 편리한 경우도 있다.
맵에 돌아다니는 잡몹들은 그냥 죽었다가 원래 상태로 다시 스폰되는게 일이기 때문에 굳이 Player State를 써도 되지 않아도 될 것 같다.


플러그인

일단 플러그인을 적용하고 재시작 해보자

그리고 빌드 파일(.build.cs)에서 모듈 추가를 해주자

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "GameplayAbilities" });
PrivateDependencyModuleNames.AddRange(new string[] { "GameplayTags", "GameplayTasks" });

AbilitySystemComponent

AbilitySystemComponent 클래스를 찾아서 생성을 해주자.
하는 김에 Attribute Set도 함께 생성하자.

profile
영차 영차

0개의 댓글