public static bool BehaviourPropertyIsVisible(MonoBehaviour behaviour, string propertyName, ConditionalFieldAttribute appliedAttribute) { if (string.IsNullOrEmpty(appliedAttribute.FieldToCheck)) { return(true); } var so = new SerializedObject(behaviour); var property = so.FindProperty(propertyName); var targetProperty = ConditionalFieldUtility.FindRelativeProperty(property, appliedAttribute.FieldToCheck); return(ConditionalFieldUtility.PropertyIsVisible(targetProperty, appliedAttribute.Inverse, appliedAttribute.CompareValues)); }
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { Initialize(property); _toShow = ConditionalFieldUtility.PropertyIsVisible(_conditionalToTarget[property], _attribute.Inverse, _attribute.CompareValues); if (!_toShow) { return(0); } if (_genericDrawerInstance != null) { return(_genericDrawerInstance.GetPropertyHeight(property, label)); } if (_genericTypeDrawerInstance != null) { return(_genericTypeDrawerInstance.GetPropertyHeight(property, label)); } return(EditorGUI.GetPropertyHeight(property)); }