프로젝트의 모든 게임플레이 어빌리티(GA)가 상속받아야 하는 기본 클래스입니다.
More...
#include <BaseGameplayAbility.h>
|
|
| UBaseGameplayAbility () |
| | 생성자. 인스턴싱 정책(InstancingPolicy)을 설정합니다.
|
| ACharacter * | GetPlayerCharacterFromActorInfo () const |
| | 어빌리티를 실행한 아바타 액터를 ACharacter로 형변환하여 반환합니다.
|
| AController * | GetPlayerControllerFromActorInfo () const |
| | 어빌리티를 실행한 플레이어 컨트롤러를 반환합니다.
|
| FGameplayEffectSpecHandle | MakeSpecHandle (TSubclassOf< UGameplayEffect > EffectClass, float Level=1.0f) |
| | GameplayEffect를 적용하기 위한 스펙 핸들(SpecHandle)을 생성합니다. (택배 포장).
|
| virtual void | ActivateAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, const FGameplayEventData *TriggerEventData) override |
| | 어빌리티 시작 시 캐릭터에게 현재 사용 중인 스킬 인덱스를 알립니다.
|
| virtual void | EndAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override |
| | 어빌리티 종료 시 캐릭터의 스킬 시전 상태를 초기화(-1)합니다.
|
|
virtual bool | CanActivateAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayTagContainer *SourceTags, const FGameplayTagContainer *TargetTags, OUT FGameplayTagContainer *OptionalRelevantTags) const override |
| | 어빌리티 발동 조건을 검사합니다. (마나, 쿨타임 및 궁극기 중복 사용 방지)
|
| void | ApplySpecHandleToTarget (AActor *TargetActor, const FGameplayEffectSpecHandle &SpecHandle) |
| | 생성된 스펙 핸들을 타겟 액터에게 적용합니다.
|
|
virtual void | ApplyCooldown (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo) const override |
| | 엑셀 데이터의 쿨타임을 적용하기 위해 오버라이드
|
|
virtual bool | CheckCost (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, OUT FGameplayTagContainer *OptionalRelevantTags=nullptr) const override |
| | 코스트(마나)가 충분한지 검사하는 함수
|
|
virtual void | ApplyCost (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo) const override |
| | 코스트(마나)를 실제로 깎는 함수
|
|
|
class AParadiseCameraManager * | GetParadiseCameraManager () const |
| | 현재 어빌리티 실행자의 카메라 매니저를 캐싱/반환하는 헬퍼 함수
|
| class UAbilityTask_PlayMontageAndWait * | PlayMontageAndWaitCallback (UAnimMontage *MontageToPlay, FName TaskInstanceName=NAME_None) |
| | 몽타주를 재생하고 종료 콜백(OnMontageCompleted)을 자동으로 연결해주는 헬퍼 함수
|
| const FCombatActionData & | GetCombatDataFromActor () |
| | 캐릭터에게서 전투 데이터를 가져오는 함수 (캐싱 적용됨)
|
| virtual void | OnMontageCompleted () |
| | 몽타주 재생이 끝났거나, 중단되었을 때 호출됩니다. 어빌리티를 종료(EndAbility)시킵니다.
|
|
FCombatActionData | GetCombatDataFromActorInfo (const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilitySpecHandle Handle) const |
| | (안전용) CheckCost, ApplyCooldown 등 CDO에서 호출될 때 사용하는 함수입니다. 멤버 변수를 절대 수정하지 않고, 즉석에서 인터페이스를 통해 데이터를 가져옵니다.
|
|
| ECombatActionType | AbilityActionType = ECombatActionType::BasicAttack |
| | 이 어빌리티의 정체성 (평타 vs 스킬)
|
프로젝트의 모든 게임플레이 어빌리티(GA)가 상속받아야 하는 기본 클래스입니다.
이 클래스는 반복적인 GAS API 호출을 줄여주는 유틸리티 함수들을 제공합니다. 특히, 캐릭터가 가진 WeaponID를 통해 데이터 관리 서브시스템(Subsystem)에서 실제 무기 데이터를 조회해오는 기능을 포함합니다.
◆ ActivateAbility()
| void UBaseGameplayAbility::ActivateAbility |
( |
const FGameplayAbilitySpecHandle | Handle, |
|
|
const FGameplayAbilityActorInfo * | ActorInfo, |
|
|
const FGameplayAbilityActivationInfo | ActivationInfo, |
|
|
const FGameplayEventData * | TriggerEventData ) |
|
overridevirtual |
◆ ApplySpecHandleToTarget()
| void UBaseGameplayAbility::ApplySpecHandleToTarget |
( |
AActor * | TargetActor, |
|
|
const FGameplayEffectSpecHandle & | SpecHandle ) |
생성된 스펙 핸들을 타겟 액터에게 적용합니다.
- Parameters
-
| TargetActor | 이펙트를 맞을 대상 액터. |
| SpecHandle | MakeSpecHandle로 생성한 핸들. |
◆ EndAbility()
| void UBaseGameplayAbility::EndAbility |
( |
const FGameplayAbilitySpecHandle | Handle, |
|
|
const FGameplayAbilityActorInfo * | ActorInfo, |
|
|
const FGameplayAbilityActivationInfo | ActivationInfo, |
|
|
bool | bReplicateEndAbility, |
|
|
bool | bWasCancelled ) |
|
overridevirtual |
◆ GetCombatDataFromActor()
캐릭터에게서 전투 데이터를 가져오는 함수 (캐싱 적용됨)
"무기가 바뀌지 않는다"는 전제 하에, 최초 1회만 검색하고 이후엔 저장된 값을 씁니다.
◆ GetPlayerCharacterFromActorInfo()
| ACharacter * UBaseGameplayAbility::GetPlayerCharacterFromActorInfo |
( |
| ) |
const |
어빌리티를 실행한 아바타 액터를 ACharacter로 형변환하여 반환합니다.
- Returns
- Cast에 성공하면 캐릭터 포인터, 실패하면 nullptr.
◆ GetPlayerControllerFromActorInfo()
| AController * UBaseGameplayAbility::GetPlayerControllerFromActorInfo |
( |
| ) |
const |
어빌리티를 실행한 플레이어 컨트롤러를 반환합니다.
- Returns
- 컨트롤러 포인터 (AI의 경우 AIController일 수 있음).
◆ MakeSpecHandle()
| FGameplayEffectSpecHandle UBaseGameplayAbility::MakeSpecHandle |
( |
TSubclassOf< UGameplayEffect > | EffectClass, |
|
|
float | Level = 1.0f ) |
GameplayEffect를 적용하기 위한 스펙 핸들(SpecHandle)을 생성합니다. (택배 포장).
- Parameters
-
| EffectClass | 적용할 GE 클래스 (Blueprint Class). |
| Level | 어빌리티 레벨 (기본값: 1.0f). 데미지 계산식 등에서 활용됩니다. |
- Returns
- 생성된 FGameplayEffectSpecHandle. 실패 시 유효하지 않은 핸들 반환.
◆ OnMontageCompleted()
| void UBaseGameplayAbility::OnMontageCompleted |
( |
| ) |
|
|
protectedvirtual |
◆ PlayMontageAndWaitCallback()
| UAbilityTask_PlayMontageAndWait * UBaseGameplayAbility::PlayMontageAndWaitCallback |
( |
UAnimMontage * | MontageToPlay, |
|
|
FName | TaskInstanceName = NAME_None ) |
|
protected |
몽타주를 재생하고 종료 콜백(OnMontageCompleted)을 자동으로 연결해주는 헬퍼 함수
- Parameters
-
| MontageToPlay | 재생할 몽타주 |
| TaskInstanceName | 태스크 이름 (보통 NAME_None) |
- Returns
- 생성된 Montage Task (추가적인 바인딩이 필요할 경우 사용)
◆ AbilityActionType
| ECombatActionType UBaseGameplayAbility::AbilityActionType = ECombatActionType::BasicAttack |
|
protected |
이 어빌리티의 정체성 (평타 vs 스킬)
블루프린트에서 설정합니다. (기본값: BasicAttack)
- GA_Attack_Normal (평타) -> BasicAttack
- GA_Skill_Smash (스킬) -> WeaponSkill
The documentation for this class was generated from the following files:
- Source/Paradise/Public/GAS/Abilities/BaseGameplayAbility.h
- Source/Paradise/Private/GAS/Abilities/BaseGameplayAbility.cpp