SerializedProperty spObjName;
SerializedProperty spWorldPosition;
SerializedProperty spAction;
SerializedProperty spBoolean;
SerializedProperty spIsExpanded;
private static readonly GUIContent objNameDescription = new GUIContent("Object Name");
private static readonly GUIContent booleanDescription = new GUIContent("This is a boolean");
spObjName = serializedObject.FindProperty("objName");
spWorldPosition = serializedObject.FindProperty("worldPosition");
spAction = serializedObject.FindProperty("action");
spBoolean = serializedObject.FindProperty("boolean");
spIsExpanded = serializedObject.FindProperty("isExpanded");
fadeGroup = new AnimBool(spIsExpanded.boolValue);
fadeGroup.valueChanged.AddListener(Repaint);
public override void OnInspectorGUI()
serializedObject.Update();
if (GUILayout.Button("Hide/Show extra fields"))
if (spIsExpanded.boolValue == false)
spIsExpanded.boolValue = true;
fadeGroup.target = false;
spIsExpanded.boolValue = false;
if (EditorGUILayout.BeginFadeGroup(fadeGroup.faded))
EditorGUILayout.PropertyField(spObjName, objNameDescription);
EditorGUILayout.PropertyField(spWorldPosition);
EditorGUILayout.PropertyField(spAction);
EditorGUILayout.PropertyField(spBoolean, booleanDescription);
EditorGUILayout.EndFadeGroup();
serializedObject.ApplyModifiedProperties();