protected float GetPropertyHeight(SerializedProperty property) { var height = 0f; var listData = GetReorderableListData(property); UnityEditor.Editor scriptableEditor; var isScriptableEditor = editableIndex.TryGetValue(property.propertyPath, out scriptableEditor); if (listData != null) { height += listData.GetPropertyHeight(property); if (height == 0f) { height += EditorGUI.GetPropertyHeight(property, false); if (property.isExpanded) { height += IterateGetPropertyHeight(property.Copy()); } } } else if (isScriptableEditor) { if (scriptableEditor == null) { height += EditorGUI.GetPropertyHeight(property, false); } else { height += EasyGUI.GetObjectReferenceHeight(property, true); } } else { var isStartProp = property.propertyPath.StartsWith(M_ScriptStr); if (isStartProp && IgnoreHeader) { } else { height += EditorGUI.GetPropertyHeight(property, property.isExpanded); } } return(height); }