|

楼主 |
发表于 2022-1-21 17:34:12
|
显示全部楼层
bool UShooterFunctions::GetFloatByName(UObject * Target, FName VarName, float &outFloat)
{
if (Target) //make sure Target was set in blueprints.
{
float FoundFloat;
UFloatProperty* FloatProp = FindField<UFloatProperty>(Target->GetClass(), VarName); // try to find float property in Target named VarName
if (FloatProp) //if we found variable
{
FoundFloat = FloatProp->GetPropertyValue_InContainer(Target); // get the value from FloatProp
outFloat = FoundFloat; // return float
return true; // we can return
}
}
return false; // we haven't found variable return false
}
写入:
bool UShooterFunctions::SetFloatByName(UObject * Target, FName VarName, float NewValue, float & outFloat)
{
if (Target)
{
float FoundFloat;
UFloatProperty* FloatProp = FindField<UFloatProperty>(Target->GetClass(), VarName);
if (FloatProp)
{
FloatProp->SetPropertyValue_InContainer(Target, NewValue); //this actually sets the variable
FoundFloat = FloatProp->GetPropertyValue_InContainer(Target);
outFloat = FoundFloat;
return true;
}
}
return false;
}
|
|