private void Record_BUTTON()
    {
        GUI.color = Color.red;

        if (GUILayout.Button("Record"))
        {
            if (currentTabIndex == 0)
            {
                foreach (var g in Selection.gameObjects)
                {
                    AiryUICustomAnimationElement aniamtedElement = g.GetComponent <AiryUICustomAnimationElement>();
                    if (aniamtedElement)
                    {
                        aniamtedElement.Record(g, AiryUICustomAnimationElement.AnimationShowOrHide.Show);
                    }
                }
            }
            else if (currentTabIndex == 1)
            {
                foreach (var g in Selection.gameObjects)
                {
                    AiryUICustomAnimationElement aniamtedElement = g.GetComponent <AiryUICustomAnimationElement>();
                    if (aniamtedElement)
                    {
                        aniamtedElement.Record(g, AiryUICustomAnimationElement.AnimationShowOrHide.Hide);
                    }
                }
            }
        }
    }
    private void OnEnable()
    {
        customAnimationElement = (AiryUICustomAnimationElement)target;

        _showItemOnMenuEnable = serializedObject.FindProperty("showItemOnMenuEnable");
        _loop = serializedObject.FindProperty("loop");
        _componentsToAnimate_SHOW                 = serializedObject.FindProperty("componentsToAnimate_SHOW");
        _transformAnimationRecords_SHOW           = serializedObject.FindProperty("TransformAnimationRecords_SHOW");
        _graphicAnimationRecords_SHOW             = serializedObject.FindProperty("GraphicAnimationRecords_SHOW");
        _transformAndGraphicAnimationRecords_SHOW = serializedObject.FindProperty("TransformAndGraphicAnimationRecords_SHOW");

        _componentsToAnimate_HIDE                 = serializedObject.FindProperty("componentsToAnimate_HIDE");
        _transformAnimationRecords_HIDE           = serializedObject.FindProperty("TransformAnimationRecords_HIDE");
        _graphicAnimationRecords_HIDE             = serializedObject.FindProperty("GraphicAnimationRecords_HIDE");
        _transformAndGraphicAnimationRecords_HIDE = serializedObject.FindProperty("TransformAndGraphicAnimationRecords_HIDE");

        _currentRecordDuration = serializedObject.FindProperty("currentRecordDuration");
        _currentRecordDelay    = serializedObject.FindProperty("currentRecordDelay");

        _withDelay = serializedObject.FindProperty("withDelay");
        _showDelay = serializedObject.FindProperty("showDelay");
        _hideDelay = serializedObject.FindProperty("hideDelay");

        _onShowEvent         = serializedObject.FindProperty("OnShow");
        _onHideEvent         = serializedObject.FindProperty("OnHide");
        _onShowCompleteEvent = serializedObject.FindProperty("OnShowComplete");
        _onHideCompleteEvent = serializedObject.FindProperty("OnHideComplete");
    }
    private void RecordMode_BUTTONS()
    {
        EditorGUILayout.BeginHorizontal();

        GUI.color = Color.cyan;
        if (GUILayout.Button("Enter Record Mode"))
        {
            foreach (var g in Selection.gameObjects)
            {
                AiryUICustomAnimationElement aniamtedElement = g.GetComponent <AiryUICustomAnimationElement>();
                if (aniamtedElement)
                {
                    aniamtedElement.EnterRecordMode(g, (AiryUICustomAnimationElement.AnimationShowOrHide)currentTabIndex);
                }
            }
            recordModeActive = true;
            GUI.color        = Color.red;
        }

        GUILayout.Space(5);

        GUI.color = Color.yellow;
        if (GUILayout.Button("Exit Record Mode"))
        {
            foreach (var g in Selection.gameObjects)
            {
                AiryUICustomAnimationElement aniamtedElement = g.GetComponent <AiryUICustomAnimationElement>();
                if (aniamtedElement)
                {
                    aniamtedElement.ExitRecordMode(g, (AiryUICustomAnimationElement.AnimationShowOrHide)currentTabIndex);
                }
            }
            recordModeActive = false;
            GUI.color        = Color.white;
        }

        GUILayout.Space(15);

        EditorGUILayout.EndHorizontal();

        EditorGUI.BeginDisabledGroup(!recordModeActive);

        Record_BUTTON();

        EditorGUI.EndDisabledGroup();

        GUILayout.Space(20);
    }