/// <summary> /// Custom extension method that will add a custom panel to a tab, instead of a default panel. /// </summary> /// <param name="tabstrip">The tab strip.</param> /// <param name="text">The tab name.</param> /// <param name="buttonTemplate">The button template.</param> /// <param name="panelTemplate">The panel template.</param> /// <param name="fillText">Should the button be updated with the tab name?</param> /// <returns>The added tab button.</returns> public static UIButton AddCustomTab(this UITabstrip tabstrip, string text, UIButton buttonTemplate, UIPanel panelTemplate, bool fillText) { UIButton button = tabstrip.AddUIComponent <UIButton>(); button.name = text; button.atlas = tabstrip.atlas; if (fillText) { button.text = text; } button.group = tabstrip; if (buttonTemplate != null) { button.atlas = buttonTemplate.atlas; button.font = buttonTemplate.font; button.autoSize = buttonTemplate.autoSize; button.size = buttonTemplate.size; button.normalBgSprite = buttonTemplate.normalBgSprite; button.disabledBgSprite = buttonTemplate.disabledBgSprite; button.focusedBgSprite = buttonTemplate.focusedBgSprite; button.hoveredBgSprite = buttonTemplate.hoveredBgSprite; button.pressedBgSprite = buttonTemplate.pressedBgSprite; button.normalFgSprite = buttonTemplate.normalFgSprite; button.disabledFgSprite = buttonTemplate.disabledFgSprite; button.focusedFgSprite = buttonTemplate.focusedFgSprite; button.hoveredFgSprite = buttonTemplate.hoveredFgSprite; button.pressedFgSprite = buttonTemplate.pressedFgSprite; button.useDropShadow = buttonTemplate.useDropShadow; button.dropShadowColor = buttonTemplate.dropShadowColor; button.dropShadowOffset = buttonTemplate.dropShadowOffset; button.useOutline = buttonTemplate.useOutline; button.outlineColor = buttonTemplate.outlineColor; button.outlineSize = buttonTemplate.outlineSize; button.useGradient = buttonTemplate.useGradient; button.bottomColor = buttonTemplate.bottomColor; button.textColor = buttonTemplate.textColor; button.horizontalAlignment = buttonTemplate.horizontalAlignment; RectOffset textPadding = buttonTemplate.textPadding; button.textPadding = new RectOffset(textPadding.left, textPadding.right, textPadding.top, textPadding.bottom); } if (tabstrip.tabPages != null) { string name = "Tab " + (tabstrip.tabPages.childCount + 1); UIPanel panel = GameObject.Instantiate <UIPanel>(panelTemplate); tabstrip.tabPages.AttachUIComponent(panel.gameObject); panel.name = name; if (!string.IsNullOrEmpty(text)) { panel.name += " - " + text; } panel.atlas = tabstrip.tabPages.atlas; panel.anchor = UIAnchorStyle.All; panel.clipChildren = true; ReflectionUtils.InvokePrivateMethod(tabstrip.tabPages, "ArrangeTabs"); tabstrip.tabPages.Invalidate(); } ReflectionUtils.InvokePrivateMethod(tabstrip, "ArrangeTabs"); tabstrip.Invalidate(); return(button); }