void OnEnable()
        {
            insetProp               = new EditorProperty(serializedObject, nameof(TrueShadow.Inset));
            sizeProp                = new EditorProperty(serializedObject, nameof(TrueShadow.Size));
            spreadProp              = new EditorProperty(serializedObject, nameof(TrueShadow.Spread));
            angleProp               = new EditorProperty(serializedObject, nameof(TrueShadow.OffsetAngle));
            distanceProp            = new EditorProperty(serializedObject, nameof(TrueShadow.OffsetDistance));
            colorProp               = new EditorProperty(serializedObject, nameof(TrueShadow.Color));
            blendModeProp           = new EditorProperty(serializedObject, nameof(TrueShadow.BlendMode));
            multiplyCasterAlphaProp = new EditorProperty(serializedObject, nameof(TrueShadow.UseCasterAlpha));
            ignoreCasterColorProp   = new EditorProperty(serializedObject, nameof(TrueShadow.IgnoreCasterColor));
            colorBleedModeProp      = new EditorProperty(serializedObject, nameof(TrueShadow.ColorBleedMode));

            if (EditorPrefs.GetBool("LeTai_TrueShadow_" + nameof(showExperimental)))
            {
                showExperimental = EditorPrefs.GetBool("LeTai_TrueShadow_" + nameof(showExperimental), false);
                showAdvanced     = EditorPrefs.GetBool("LeTai_TrueShadow_" + nameof(showAdvanced), false);
            }

            procrastinateLabel = new GUIContent("Procrastinate", "A bug that is too fun to fix");
        }