This is the basic attribute information data structure of the attribute system, and your description of attributes is processed based on it.
The following are the specific variable types and the functions they have.


The system provides basic attribute data viewing text for AttributeInfo. You can easily know what the attribute you have is without expanding the structure unless you need to edit it, which is more convenient for you to view.

Introduction to AttributeInfo data structure

- AttributeTag: This is the type of attribute, defined based on AttributeTag. You can use it as GameplayTag. AttributeTag is used here to reduce the burden of GameplayTag.
- Base: This is the base value of the attribute. The base value should come from the fixed increase or other fixed increase after the PrimaryAttribute is changed. It should not be changed frequently.
- ModifierValue: There is a CheckBox next to it. Its check or uncheck is used to define whether this attribute should contain a modified value, such as PrimaryAttribute, which will not be changed frequently and does not require ModifierValue.
However, for values that need to be modified frequently, it is recommended to check the box and change the value through AddModify (ModifyType = CurrentValue) to achieve your purpose of changing the attribute.
- CurrentValue: This is not defined in the data structure, but it is necessary, one of its underlying logic is Base+ModifierValue. You can directly call CurrentValue through the AttributeInfo type variable in Graph, which will get the corresponding current value.
- MaxValue: This is used to define the maximum value of the attribute. Similar to ModifierValue's design. But it is gray by default, because for me, many attributes are not useful unless you set a maximum value limit for each attribute.
Function methods owned by AttributeInfo
CheckCost
Check whether the property value meets the consumption requirement (whether the property value is greater than the consumption value)
