* 데미지 계산하는 방법
GE에서 직접계산하는게 아님
meta속성, AS에 의해 아래 사항을 고려해서 최종데미지를 결정하고
체력을 변화시키는 방식
* 현재 데미지 문제점
* 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; //사망에이를만한 피해인지
}
}
* 테스트
* next
25라는 값도 하드코딩하지말고, 계산후 변수형태로 넣어보자
'UE5 > Damage' 카테고리의 다른 글
[UE5] 맞은적 머리위에 데미지 뜨도록 구현 (0) | 2024.06.23 |
---|---|
[UE5] 적 죽을때 용해효과 구현 (0) | 2024.06.23 |
[UE5] 적 죽음 구현 (0) | 2024.06.23 |
[UE5] 타격시 에니메이션 구현 (0) | 2024.06.23 |
[UE5] json으로 레벨별 데미지 구현 (0) | 2024.06.23 |