|
|
- using UnityEngine;
-
- #if UNITY_EDITOR
- using UnityEditor;
- #endif
-
- /// <summary>
- /// Class for the Hide in Prefab Attribute
- /// </summary>
- /// <remarks>
- /// Class is empty because we have no parameters needed for this attribute
- /// </remarks>
- public class HideInPrefabAttribute : PropertyAttribute
- {
-
- }
-
-
-
- #if UNITY_EDITOR
- /// <summary>
- /// Override for the Property Drawer which draws the GUI
- /// </summary>
- [CustomPropertyDrawer(typeof(HideInPrefabAttribute))]
- public class HideInPrefabDrawer : PropertyDrawer
- {
-
- //On GUI override
- public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
- {
- //get the type of the object this property is attched to
- PrefabType type = PrefabUtility.GetPrefabType(property.serializedObject.targetObject);
-
- //if the type isn't a perfab then draw the property
- if (type != PrefabType.Prefab)
- EditorGUI.PropertyField(position, property, label);
- }
-
- //Override GetPropertyHeight
- public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
- {
- //get the type of the object this property is attched to
- PrefabType type = PrefabUtility.GetPrefabType(property.serializedObject.targetObject);
-
- //if type prefab return zero height (because it won't be drawn)
- if (type == PrefabType.Prefab)
- return 0;
-
- //else return normal height
- return base.GetPropertyHeight(property, label);
- }
- }
- #endif
|