public void InstantiateDefaultButton()
        {
            Initialize();

            _buttonGroupData           = defaultButtonGroupData;
            _buttonGroupVisualInstance = Instantiate(_buttonGroupData.buttonGroupVisualPrefab, parentButtonGroupVisual != null ? parentButtonGroupVisual : transform);
            _buttonGroupVisualInstance.DefaultButtonClicked.AddListener(ContinueButtonClickedInvoker);
        }
        /// <summary>
        /// Instantiate the randomly choose ButtonGroup and subscribe to its event
        /// </summary>
        public void InstantiateButtonGroup()
        {
            Initialize();

            if (_buttonGroupVisualInstance != null)
            {
                Destroy(_buttonGroupVisualInstance.gameObject);
            }

            #if VOODOO_SAUCE
            _buttonGroupData = enableSpecialButtonGroupDatas && weightedButtonGroupDatas.Count > 0 ? weightedButtonGroupDatas.TakeOne() : defaultButtonGroupData;
            #else
            _buttonGroupData = defaultButtonGroupData;
            #endif
            _buttonGroupVisualInstance = Instantiate(_buttonGroupData.buttonGroupVisualPrefab, parentButtonGroupVisual != null ? parentButtonGroupVisual : transform);
            _buttonGroupVisualInstance.DefaultButtonClicked.AddListener(ContinueButtonClickedInvoker);
            if (destroySpecialButtonOnClick)
            {
                _buttonGroupVisualInstance.SpecialButtonClicked.AddListener(DestroyButton);
            }
        }