1. 물약 개선
(1) GE_PotionHeal - 게임플레이 이펙트 블루프린트 생성
이제 UGameplayEffect를 상속받는 게임플레이 이펙트 블루프린트를 생성한다.
이 블루프린트를 이용하여 습득하면 체력을 회복하는 기능을 구현할 수 있다.
- 효과가 즉각적으로 나타나기를 원하기 때문에, Duration Policy는 즉시(Instant)로 지정한다.
- 체력 속성을 증가시키기 위해 모디파이어 연산자는 Add로 지정한다.
- 고정된 값을 증가시키기 위해 크기 계산 타입을 확장 가능한 플로트, 25로 지정한다.
(2) AuraEffectActor의 InstantGameplayEffectClass를 노출시키기
InstantGameplayEffectClass를 블루프린트 상에 노출시킨다.
이후에 체력 포션의 블루프린트에서 해당 클래스를 위에서 생성한 클래스(GE_PotionHeal)로 지정할 것이다.
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "AuraEffectActor.generated.h"
class UGameplayEffect;
UCLASS()
class AURA_API AAuraEffectActor : public AActor
{
GENERATED_BODY()
public:
AAuraEffectActor();
protected:
virtual void BeginPlay() override;
UFUNCTION(BlueprintCallable)
void ApplyEffectToTarget(AActor* TargetActor, TSubclassOf<UGameplayEffect> GameplayEffectClass);
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Applied Effects")
TSubclassOf<UGameplayEffect> InstantGameplayEffectClass;
(3) 체력 포션의 블루프린트에서 ApplyEffectToTarget 함수 사용
ApplyEffectToTarget는 UFUNCTION 매크로의 BlueprintCallable로 지정되어 있기 때문에 블루프린트에서 호출이 가능하다.
체력 포션의 블루프린트에 스태틱 메시와 스피어가 생성된 이후, 이벤트 그래프를 아래와 같이 작성한다.
이후 디테일 창에서 기존에 생성했던 GE_PotionHeal을 지정한다.
이제 캐릭터가 포션에 접촉하면 체력 속성이 증가되는 것을 볼 수 있다.
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
4-5. 게임플레이 이펙트 클래스 - (3) 스택(Stacking) (0) | 2024.08.23 |
---|---|
4-4. 게임플레이 이펙트 클래스 - (2) 이펙트 지속 적용(Duration) (0) | 2024.08.23 |
4-2. 게임플레이 이펙트 적용 - 물약(AuraEffectActor) 개선 (0) | 2024.08.23 |
4-1. 게임플레이 이펙트 - (1) 게임플레이 이펙트(Gameplay Effects) (0) | 2024.08.23 |
3-6. 위젯에 속성(Attributes) 값 변화를 적용하기 (0) | 2024.08.22 |