관리 메뉴

Mini

[UE5] 데미지계산용 Meta 속성추가 // 데미지 계산하는 방법 본문

UE5/Damage

[UE5] 데미지계산용 Meta 속성추가 // 데미지 계산하는 방법

Mini_96 2024. 6. 22. 16:56

* 데미지 계산하는 방법

GE에서 직접계산하는게 아님

meta속성, AS에 의해 아래 사항을 고려해서 최종데미지를 결정하고

체력을 변화시키는 방식

 

* 현재 데미지 문제점

-10 이 하드코딩 되어있음 / Meta속성에서 계산하도록 개선할거임

 

*  AS에 Meta속성추가, 구현

서버에 복제할필요없이

Local에서만 사용할거임

UPROPERTY(BlueprintReadOnly, Category = "Meta Attributes") //복제안함
FGameplayAttributeData IncomingDamage;
ATTRIBUTE_ACCESSORS(UAuraAttributeSet, IncomingDamage);
void UAuraAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data)
{
    ...
    if(Data.EvaluatedData.Attribute==GetIncomingDamageAttribute())
    {
       const float LocalIncomingDamage = GetIncomingDamage();
       SetIncomingDamage(0.f);
       if(LocalIncomingDamage > 0.f)
       {
          const float NewHealth = GetHealth() - LocalIncomingDamage;
          SetHealth(FMath::Clamp(NewHealth,0.f,GetMaxHealth())); //음수인경우 조정

          const bool bFatal = NewHealth<=0.f; //사망에이를만한 피해인지
       }
    }

 

* 테스트

피가 25가 깍이는모습

 

* next

25라는 값도 하드코딩하지말고, 계산후 변수형태로 넣어보자

 

https://github.com/DongHoonYu96/GameplayAbilitySystem_Aura/commit/80be3d41aaf22fe59c5dc4a8a1fff9186d863903

 

feat : 데미지계산용 Meta 속성추가 · DongHoonYu96/GameplayAbilitySystem_Aura@80be3d4

Bisu96 committed Jun 22, 2024

github.com