관리 메뉴

Mini

[UE5] PreAttributeChange // 체력,마나 min-max 제한하는법 본문

UE5/GameplayEffect

[UE5] PreAttributeChange // 체력,마나 min-max 제한하는법

Mini_96 2024. 6. 2. 20:32

1. Pre : 속성이 변하기전에 자동 호출되는 함수

Post : 속성이 변한후 자동 호출되는 함수

 

2. 구현

AS에서 구현함.

속성이 바뀌기 전에 자동실행되어, 범위를 제한함

void UAuraAttributeSet::PreAttributeChange(const FGameplayAttribute& Attribute, float& NewValue)
{
	Super::PreAttributeChange(Attribute, NewValue);

	if (Attribute == GetHealthAttribute()) //속성이 체력인경우
	{
		NewValue = FMath::Clamp(NewValue, 0.f, GetMaxHealth()); //new val을 범위제한함(0~최대체력)
	}
	if (Attribute == GetManaAttribute())
	{
		NewValue = FMath::Clamp(NewValue, 0.f, GetMaxMana());
	}
}

 

3.  결과

마나포션을 먹어도 100이상으로 안올라감