WN_인생기록

[UE_5] GAS란 무엇인가 - GameplayAbility 본문

언리얼 개발/탐구(이론)

[UE_5] GAS란 무엇인가 - GameplayAbility

WhNi 2024. 4. 24. 17:11

GameplayAbility는 UObject를 상속받고 있다.

기본적으로 게임플레이의 매커니즘을 위한 자체 로직이라고 보면 된다.

 

먼저 Ability에 대한 인스턴스Policy를 정해야 하는데, 

 

NonInstanced ( 기본 세팅 ) - 인스턴스 오브젝트 안씀, 클래스 기본 함수 바로 사용 함(런타임에 수정할 일 없음)

InstancedPerActor ( 액터가 인스턴스를 가짐)

InstancePerExecution  ( 어빌리티 실행될때만 생성됨) - 그래서 어빌리티 호출전에 인스턴스 생성됨.

마지막은 NonInstanced

이렇게 세가지가 있다. 

 

GiveAbility를 할때, InstancedPerActor일때 어떻게 생성하는지 저번 포스트에 나와있었다. 

 

다음은  NetExecutionPolicy 이다.

네트워크가 언제 어빌리티를 실행하는지. 정하는 규칙이다. 

LocalPredicted 는 클라에서 서버로

LocalOnly 는 클라이언트 혹은 서버에 대한  컨트롤을 가지고 있을때

ServerInitated 서버에서 클라로

ServerOnly 는 서버만

(이부분은 언제 제대로 쓰이는지 실제 사례를 드는게 이해가 빠를거 같다)

이 규칙에 따라서 TryActivityAbilityClass를 실행하는 시기가 달라진다. 

 

Ability는 Tag와 주로 상호작용하면서 실행되는데,  Ability가  Activate 되기 전에 

 

 

Tag에 대한 안정성 검사도 실행된다. 

'언리얼 개발 > 탐구(이론)' 카테고리의 다른 글

[UE_5] GAS란 무엇인가 - Gameplay Tags  (0) 2024.04.24
[UE_5] GAS란 무엇인가 - GameplayTasks  (0) 2024.04.24
[UE_5] GAS란 무엇인가  (0) 2024.04.24
[UE_5] Slate가 뭘까  (0) 2024.04.22
[UE_5] GetOuter()  (0) 2024.04.20