public static bool IsEnabled(SerializedProperty property) { EnableIfAttributeBase enableIfAttribute = GetAttribute <EnableIfAttributeBase>(property); if (enableIfAttribute == null) { return(true); } object target = GetTargetObjectWithProperty(property); List <bool> conditionValues = GetConditionValues(target, enableIfAttribute.Conditions); if (conditionValues.Count > 0) { bool enabled = GetConditionsFlag(conditionValues, enableIfAttribute.ConditionOperator, enableIfAttribute.Inverted); return(enabled); } else { string message = enableIfAttribute.GetType().Name + " needs a valid boolean condition field, property or method name to work"; Debug.LogWarning(message, property.serializedObject.targetObject); return(false); } }
public static bool IsEnabled(Object target, MethodInfo method) { EnableIfAttributeBase enableIfAttribute = method.GetCustomAttribute <EnableIfAttributeBase>(); if (enableIfAttribute == null) { return(true); } List <bool> conditionValues = PropertyUtility.GetConditionValues(target, enableIfAttribute.Conditions); if (conditionValues.Count > 0) { bool enabled = PropertyUtility.GetConditionsFlag(conditionValues, enableIfAttribute.ConditionOperator, enableIfAttribute.Inverted); return(enabled); } else { string message = enableIfAttribute.GetType().Name + " needs a valid boolean condition field, property or method name to work"; Debug.LogWarning(message, target); return(false); } }