Exemplo n.º 1
0
        /// <summary>
        /// Factory method to instantiate <see cref="Combo"/>
        /// </summary>
        public static Combo Instantiate(ComboSlider slider, ComboButton button, ComboData data, Transform parent)
        {
            var instance = new GameObject("Combo", typeof(RectTransform), typeof(Combo));

            instance.transform.SetParent(parent);

            var comboComponent = instance.GetComponent <Combo>();

            comboComponent.sliderPrefab = slider;
            comboComponent.buttonPrefab = button;
            comboComponent.comboData    = data;

            return(comboComponent);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Factory method to instantiate <see cref="ComboFrame"/>
        /// </summary>
        public static ComboFrame Instantiate(ComboButton button, ComboSlider slider, ComboFrameData data, Transform parent)
        {
            Type ofType(ComboFrameType type)
            {
                switch (type)
                {
                case ComboFrameType.Ordered:
                    return(typeof(OrderedFrame));

                case ComboFrameType.SimultaneousButton:
                    return(typeof(SimultaneousButtonFrame));

                case ComboFrameType.SimultaneousSlider:
                    return(typeof(SimultaneousSliderFrame));

                default:
                    return(typeof(UnorderedFrame));
                }
            }

            var frameType = ofType(data.frameType);

            var instance = new GameObject("Combo Frame", typeof(RectTransform), frameType);

            instance.transform.SetParent(parent);

            var comboFrameComponent = (ComboFrame)instance.GetComponent(frameType);

            comboFrameComponent.frameData    = data;
            comboFrameComponent.sliderPrefab = slider;
            comboFrameComponent.buttonPrefab = button;

            // should be asserted somewhere before this
//            var (_, comboFrame, _, comboButtons, comboSliders) = Helper.Directories;
//            if (!data.IsSavedFile()) data.SaveNew(comboFrame, "Combo Frame");
//
//            foreach (var comboItemData in data.items.Where(item => !item.IsSavedFile())) {
//                if (comboItemData is ComboButtonData)
//                    comboItemData.SaveNew(comboButtons, "Combo Button");
//                else
//                    comboItemData.SaveNew(comboSliders, "Combo Slider");
//            }

            return(comboFrameComponent);
        }