public static void SetState(this CanvasGroup group, CanvasGroupState state)
        {
            if (!group)
            {
                return;
            }

            group.alpha              = state.Alpha;
            group.interactable       = state.Interactable;
            group.ignoreParentGroups = state.IgnoreParent;
            group.blocksRaycasts     = state.BlockRaycasts;
        }
        public static CanvasGroupState CreateState(
            float alpha,
            bool interactable  = true,
            bool blockRaycasts = true,
            bool ignoreParent  = false)
        {
            var resultState = new CanvasGroupState()
            {
                Alpha         = alpha,
                Interactable  = interactable,
                IgnoreParent  = ignoreParent,
                BlockRaycasts = blockRaycasts,
            };

            return(resultState);
        }