public override void DrawField(MightyMember <FieldInfo> mightyMember, BaseDrawerAttribute baseAttribute) { var attribute = (EditorSerializeAttribute)baseAttribute; var context = mightyMember.Context; var field = mightyMember.MemberInfo; var target = mightyMember.Target; if (attribute.OldName != null) { EditorFieldsDatabase.RenameField(context, attribute.OldName, field.Name); } if (attribute.Options == EditorFieldOption.Hide) { return; } var editorField = EditorFieldsDatabase.GetEditorField(context, field.Name); var value = field.GetValue(target); if (attribute.Options.Contains(EditorFieldOption.Deserialize)) { Deserialize(attribute, editorField, target, field, ref value); } if (attribute.Options.Contains(EditorFieldOption.Hide) && field.GetCustomAttribute(typeof(HideAttribute), true) is HideAttribute) { if (attribute.Options.Contains(EditorFieldOption.Serialize)) { Serialize(attribute, editorField, value, field.FieldType); } return; } if (attribute.Options.Contains(EditorFieldOption.Hide)) { return; } EditorGUI.BeginChangeCheck(); if (field.GetCustomAttribute(typeof(CustomDrawerAttribute), true) is CustomDrawerAttribute drawerAttribute && (DrawersDatabase.GetDrawerForAttribute <CustomDrawerPropertyDrawer>(typeof(CustomDrawerAttribute)) is var drawer)) { value = drawer.DrawField(field, context, value, drawerAttribute); }
private void Disable() { m_drawer?.OnDisable(); m_drawer = null; DrawersDatabase.ClearCache(); }