Лекция 155
Дополнительно необходимо поменять в функции OnGroundLanded
персонажа FDamageEvent
на FPointDamageEvent
Таким образом в финале функция должна выглядеть следующим образом:
void ASTUBaseCharacter::OnGroundLanded(const FHitResult& Hit)
{
const auto FallVelocityZ = -GetVelocity().Z;
if (FallVelocityZ < LandedDamageVelocity.X) return;
const auto FallDamage = FMath::GetMappedRangeValueClamped(LandedDamageVelocity, LandedDamage, FallVelocityZ);
TakeDamage(FallDamage, FPointDamageEvent{}, nullptr, nullptr);
UE_LOG(LogBaseCharacter, Display, TEXT("Player %s recived landed damage: %f"), *GetName(), FallDamage);
}
Last updated
Was this helpful?