private void RestoreControl()
        {
            var nextControlId = taskMeta.NextRect.Name;

            switch (unloadingType)
            {
            case LegoUIType.None:
                break;

            case LegoUIType.Text:
                var text = taskRect.Find(nextControlId).GetComponent <YuLegoText>();
                textPool.Restore(text);
                break;

            case LegoUIType.InlineText:
                break;

            case LegoUIType.Image:
                var image = taskRect.Find(nextControlId).GetComponent <YuLegoImage>();
                imagePool.Restore(image);
                break;

            case LegoUIType.RawImage:
                var rawImage = taskRect.Find(nextControlId).GetComponent <YuLegoRawImage>();
                rawImagePool.Restore(rawImage);
                break;

            case LegoUIType.Button:
                var button = taskRect.Find(nextControlId).GetComponent <YuLegoButton>();
                buttonPool.Restore(button);
                break;

            case LegoUIType.InputField:
                var inputField = taskRect.Find(nextControlId).GetComponent <YuLegoInputField>();
                inputFieldPool.Restore(inputField);
                break;

            case LegoUIType.Slider:
                var slider = taskRect.Find(nextControlId).GetComponent <YuLegoSlider>();
                sliderPool.Restore(slider);
                break;

            case LegoUIType.Progressbar:
                var progressbar = taskRect.Find(nextControlId).GetComponent <YuLegoProgressbar>();
                progressbarPool.Restore(progressbar);
                break;

            case LegoUIType.Toggle:
                var toggle = taskRect.Find(nextControlId).GetComponent <YuLegoToggle>();
                togglePool.Restore(toggle);
                break;

            case LegoUIType.PlaneToggle:
                break;

            case LegoUIType.Tab:
                break;

            case LegoUIType.Dropdown:
                var dropdown = taskRect.Find(nextControlId).GetComponent <YuLegoDropdown>();
                dropdownPool.Restore(dropdown);
                break;

            case LegoUIType.Rocker:
                break;

            case LegoUIType.Grid:
                break;

            case LegoUIType.ScrollView:
                var scrollView = taskRect.Find(nextControlId).GetComponent <YuLegoScrollView>();
                scrollViewPool.Restore(scrollView);
                break;

            case LegoUIType.Component:
                break;

            case LegoUIType.View:
                break;

            case LegoUIType.TButton:
                var tButton = taskRect.Find(nextControlId).GetComponent <YuLegoTButton>();
                _tButtonPool.Restore(tButton);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            unloadedCount++;
        }