using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif public class HideInPrefabAttribute : PropertyAttribute { } [CustomPropertyDrawer(typeof(HideInPrefabAttribute))] public class HideInPrefabDrawer : PropertyDrawer { public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { PrefabType type = PrefabUtility.GetPrefabType(property.serializedObject.targetObject); if (type != PrefabType.Prefab) EditorGUI.PropertyField(position, property, label); } public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { PrefabType type = PrefabUtility.GetPrefabType(property.serializedObject.targetObject); if (type == PrefabType.Prefab) return 0; return base.GetPropertyHeight(property, label); } }