Class EditableIfAttribute
Attribute to make a field editable if a condition is met.
Note: If the target field is a bool it will check for true/false, otherwise it will check if the field is not null.
[SerializeField] private bool m_UseFeature;
[SerializeField, EditableIf("m_UseFeature")] private Transform m_ObjectReference; // Will only be editable if m_UseFeature is true.
Known Issue:
Sometimes the Inspector Window will not update the field when the condition is met.
Until solved, this behaviour can be fixed by deselecting and reselecting the item to refresh the inspector manually.
[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
public class EditableIfAttribute : ShowIfAttribute
- Inheritance
-
EditableIfAttribute
- Inherited Members
Constructors
EditableIfAttribute(string, bool)
Attribute to make a field editable if a condition is met.
public EditableIfAttribute(string fieldName, bool value = true)
Parameters
Methods
EvaluateActive(object)
Override this method to calculate if the field is active or not.
public override bool EvaluateActive(object target)
Parameters
target
objectThe object to evaluate the condition for.
Returns
- bool
True if the field is active; otherwise false.
EvaluateReadOnly(object)
Override this method to calculate if the field is read only or not.
public override bool EvaluateReadOnly(object target)
Parameters
target
objectThe object to evaluate the condition for.
Returns
- bool
True if the field is read only; otherwise false.