module-inspector/Editor/AccessModifiers/DisableFieldAttributeDrawer.cs

18 lines
689 B
C#

using UnityEditor;
namespace Module.Inspector.Editor
{
[CustomPropertyDrawer(typeof(DisableFieldAttribute))]
internal sealed class DisableFieldAttributeDrawer : AccessModifierPropertyDrawer
{
public override EAccessType GetAccessType(AccessModifierPropertyAttribute attribute, SerializedProperty property, EAccessType currentAccessType)
{
var att = (DisableFieldAttribute)attribute;
if (currentAccessType == EAccessType.Enabled && property.IsSiblingValue(att.fieldName, att.fieldValue, att.useFieldValue))
currentAccessType = EAccessType.ReadOnly;
return currentAccessType;
}
}
}