/// <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); }
/// <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); }