public void OnGui(SerializedProperty property, GUIContent label, T attribute) { if (attribute == null) { return; } if (IsPropertyValid(property)) { OnGuiSafe(property, label, attribute); } else { var warningContent = new GUIContent(property.displayName + " has invalid property drawer"); ToolboxEditorLog.WrongAttributeUsageWarning(attribute, property); ToolboxEditorGui.DrawLayoutEmptyProperty(property, warningContent); } }