using UnityEngine; namespace InspectorToolkit { public class LayerAttribute : PropertyAttribute { } } #if UNITY_EDITOR namespace InspectorToolkit.Internal { using UnityEditor; [CustomPropertyDrawer(typeof(LayerAttribute))] public class LayerAttributeDrawer : PropertyDrawer { public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { if (property.propertyType != SerializedPropertyType.Integer) { if (!_checked) Warning(property); EditorGUI.PropertyField(position, property, label); return; } property.intValue = EditorGUI.LayerField(position, label, property.intValue); } private bool _checked; private void Warning(SerializedProperty property) { Debug.LogWarning(string.Format("Property {0} in object {1} is of wrong type. Expected: Int", property.name, property.serializedObject.targetObject)); _checked = true; } } } #endif