Ejemplo n.º 1
0
        /// <summary>
        /// Draws popup in the Inspector
        /// </summary>
        /// <param name="position"></param>
        /// <param name="property"></param>
        /// <param name="label"></param>
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            RequiredInHierarchyAttribute requiredAttr = attribute as RequiredInHierarchyAttribute;

            if (!FindRequiredComponent(requiredAttr))
            {
                position.height = EditorGUIUtility.singleLineHeight * 2.0f;
                EditorGUI.HelpBox(position, string.Format("Can not find a {0} component in the scene.", requiredAttr.requiredType.Name), MessageType.Warning);
                position.y     += EditorGUIUtility.singleLineHeight * 2.0f + 2;
                position.height = EditorGUIUtility.singleLineHeight;
            }
            EditorGUI.PropertyField(position, property, label, true);
        }
Ejemplo n.º 2
0
 static Object FindRequiredComponent(RequiredInHierarchyAttribute requiredAttr)
 {
     return(GameObject.FindObjectOfType(requiredAttr.requiredType));
 }