float UARAttributeBaseComponent::GetFloatValue(FName AttributeName) { if (AttributeName.IsNone()) return 0; UNumericProperty* NumericProperty = CastChecked<UNumericProperty>(GetAttribute(AttributeName)); void* pValue = NumericProperty->ContainerPtrToValuePtr<void>(this); return NumericProperty->GetFloatingPointPropertyValue(pValue); }
float URPGAttributeComponent::GetNumericValue(FName AttributeName) { if (!AttributeName.IsNone()) { UNumericProperty* NumericProperty = CastChecked<UNumericProperty>(GetAttribute(AttributeName, this->GetClass())); void* ValuePtr = NumericProperty->ContainerPtrToValuePtr<void>(this); float tempVal = 0; tempVal = NumericProperty->GetFloatingPointPropertyValue(ValuePtr); return tempVal; } return 0; }
float UGAAttributesBase::GetFloatValue(const FGAAttribute& AttributeIn) { if ((AttributeIn.AttributeName == LastAttributeName)) { if (CachedFloatPropety) { const void* ValuePtr = CachedFloatPropety->ContainerPtrToValuePtr<void>(this); return CachedFloatPropety->GetFloatingPointPropertyValue(ValuePtr); } } //LastAttributeName = AttributeIn.AttributeName; UNumericProperty* NumericProperty = CastChecked<UNumericProperty>(FindProperty(AttributeIn)); CachedFloatPropety = NumericProperty; const void* ValuePtr = NumericProperty->ContainerPtrToValuePtr<void>(this); return NumericProperty->GetFloatingPointPropertyValue(ValuePtr); return 0; }
float FGameplayAttribute::GetNumericValueChecked(const UAttributeSet* Src) const { UNumericProperty* NumericProperty = CastChecked<UNumericProperty>(Attribute); const void* ValuePtr = NumericProperty->ContainerPtrToValuePtr<void>(Src); return NumericProperty->GetFloatingPointPropertyValue(ValuePtr); }