public override void gaxb_complete()
    {
        HideAnimation = (x, idx, direction) => {
            x.canvasGroup.alpha = 0;
            x.gameObject.SetActive(false);
        };

        ShowAnimation = (x, idx, direction) => {
            x.canvasGroup.alpha = 1;
            x.gameObject.SetActive(true);
        };

        CloseAnimation = (x, idx, block) => {
            x.canvasGroup.alpha = 0;
            x.gameObject.SetActive(false);
            block();
        };


        foreach (object childObj in children)
        {
            PUGameObject child = childObj as PUGameObject;
            child.CheckCanvasGroup();
            child.canvasGroup.alpha = 0;
            child.gameObject.SetActive(false);
        }

        int initialIndex = currentIndex.Value;

        currentIndex = -1;
        SwitchTo(initialIndex);
    }