Пример #1
0
        void FreeButton(PaginationButton button)
        {
            button.gameObject.SetActive(false);
            button.Button.onClick.RemoveAllListeners();

            // No object pooling at edit-time
            if (!Application.isPlaying)
            {
                DestroyImmediate(button.gameObject);
            }
        }
Пример #2
0
        PaginationButton GetButtonFromPool(PaginationButton.eButtonType buttonType)
        {
            PaginationButton button = null;

            if (Application.isPlaying)
            {
                if (!buttonPool.ContainsKey(buttonType))
                {
                    buttonPool.Add(buttonType, new List <PaginationButton>());
                }

                button = buttonPool[buttonType].FirstOrDefault(b => b != null && !b.gameObject.activeSelf);
            }

            if (button == null)
            {
                PaginationButton template = null;

                switch (buttonType)
                {
                case PaginationButton.eButtonType.CurrentPage:
                    template = ButtonTemplate_CurrentPage;
                    break;

                case PaginationButton.eButtonType.OtherPages:
                    template = ButtonTemplate_OtherPages;
                    break;

                case PaginationButton.eButtonType.DisabledPage:
                    template = ButtonTemplate_DisabledPage ?? ButtonTemplate_OtherPages;
                    break;
                }

                button = Instantiate(template) as PaginationButton;

                if (Application.isPlaying)
                {
                    buttonPool[buttonType].Add(button);
                }
            }

            return(button);
        }