public static void setSpriteSet(UIMultiStateButton.SpriteSet spriteSet, string baseName) { spriteSet.set_normal(baseName); spriteSet.set_disabled(baseName); spriteSet.set_hovered(baseName); spriteSet.set_pressed(baseName); spriteSet.set_focused(baseName); }
void InitControls() { LocaleManager.eventLocaleChanged += OnLocaleChanged; // 昼夜转换 btnDayNightSwitch = this.AddUIComponent <UIButton>(); btnDayNightSwitch.size = new Vector2(18, 9); btnDayNightSwitch.relativePosition = new Vector3(4, 6); btnDayNightSwitch.normalBgSprite = "IconSunMoon"; btnDayNightSwitch.playAudioEvents = true; //btnDayNightSwitch.tooltipLocaleID = "TIMECONTROL"; btnDayNightSwitch.eventClick += OnDayNightSwitchClicked; btnDayNightSwitch.eventMouseUp += OnDayNightSwitchMouseUp; btnDayNightSwitch.opacity = 0.5f; btnDayNightSwitch.isTooltipLocalized = true; btnDayNightSwitch.spritePadding = new RectOffset(); // 天气转换 btnWeatherSwitch = this.AddUIComponent <UIButton>(); btnWeatherSwitch.size = new Vector2(13, 13); btnWeatherSwitch.relativePosition = new Vector3(25, 4); btnWeatherSwitch.normalBgSprite = "IconPolicyOnlyElectricity"; btnWeatherSwitch.playAudioEvents = true; //btnWeatherSwitch.tooltipLocaleID = "THEME_WORLD_WEATHER"; btnWeatherSwitch.eventClick += OnWeatherSwitchClicked; btnWeatherSwitch.eventMouseUp += OnWeatherSwitchMouseUp; btnWeatherSwitch.opacity = 0.5f; btnWeatherSwitch.isTooltipLocalized = true; btnWeatherSwitch.spritePadding = new RectOffset(); // 啾啾显示 btnChirperContainer = this.AddUIComponent <UIButton>(); btnChirperContainer.size = new Vector2(13, 13); btnChirperContainer.relativePosition = new Vector3(42, 2); btnChirperContainer.normalBgSprite = "ChirperIcon"; btnChirperContainer.playAudioEvents = true; btnChirperContainer.isTooltipLocalized = true; btnChirperContainer.spritePadding = new RectOffset(); btnChirperContainer.eventClick += OnChirperTogglerClicked; btnChirperContainer.tooltipLocaleID = "CHIRPER_NAME"; if (ChirpPanel.instance != null) { btnChirperContainer.isVisible = true; btnChirperContainer.opacity = ChirpPanel.instance.gameObject.activeSelf ? 0.5f : 0.1f; } else { btnChirperContainer.isVisible = false; } // 电台显示 btnRadioIconContainer = this.AddUIComponent <UIButton>(); btnRadioIconContainer.size = new Vector2(13, 13); btnRadioIconContainer.relativePosition = new Vector3(58, 2); btnRadioIconContainer.normalFgSprite = "ADIcon"; btnRadioIconContainer.playAudioEvents = true; btnRadioIconContainer.isTooltipLocalized = true; btnRadioIconContainer.spritePadding = new RectOffset(); btnRadioIconContainer.eventClick += OnRadioTogglerClicked; // 静音 btnMuteAudioContainer = this.AddUIComponent <UIButton>(); btnMuteAudioContainer.size = new Vector2(13, 13); btnMuteAudioContainer.relativePosition = new Vector3(74, 2); btnMuteAudioContainer.normalFgSprite = "IconPolicyNoLoudNoisesHovered"; btnMuteAudioContainer.playAudioEvents = true; btnMuteAudioContainer.isTooltipLocalized = true; btnMuteAudioContainer.spritePadding = new RectOffset(); btnMuteAudioContainer.eventClick += (UIComponent comp, UIMouseEventParameter p) => { ExtendedInfoManager.AudioMuteAll = !ExtendedInfoManager.AudioMuteAll; Singleton <AudioManager> .instance.MuteAll = ExtendedInfoManager.AudioMuteAll; btnMuteAudioContainer.opacity = Singleton <AudioManager> .instance.MuteAll ? 0.1f : 0.5f; }; btnMuteAudioContainer.opacity = Singleton <AudioManager> .instance.MuteAll ? 0.1f : 0.5f; // 暂停按钮 btnPlay = this.AddUIComponent <UIMultiStateButton>(); btnPlay.size = new Vector2(11, 12); btnPlay.relativePosition = new Vector3(206, LINE2 + 2); btnPlay.isTooltipLocalized = true; btnPlay.tooltipLocaleID = "MAIN_PLAYPAUSE"; btnPlay.eventClick += OnPlayClicked; btnPlay.playAudioEvents = true; btnPlay.spritePadding = new RectOffset(); UIMultiStateButton.SpriteSet btnPlaySpriteSet0 = btnPlay.foregroundSprites[0]; btnPlaySpriteSet0.normal = "ButtonPause"; btnPlaySpriteSet0.hovered = "ButtonPauseHovered"; btnPlaySpriteSet0.pressed = "ButtonPausePressed"; btnPlaySpriteSet0.focused = "ButtonPauseFocused"; btnPlay.backgroundSprites.AddState(); btnPlay.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet btnPlaySpriteSet1 = btnPlay.foregroundSprites[1]; btnPlaySpriteSet1.normal = "ButtonPlay"; btnPlaySpriteSet1.hovered = "ButtonPlayHovered"; btnPlaySpriteSet1.pressed = "ButtonPlayPressed"; btnPlaySpriteSet1.focused = "ButtonPlayFocused"; // 速度按钮 btnSpeed = this.AddUIComponent <UIMultiStateButton>(); btnSpeed.size = new Vector2(28, 22); btnSpeed.relativePosition = new Vector3(280, LINE2 - 4); btnSpeed.isTooltipLocalized = true; btnSpeed.tooltipLocaleID = "MAIN_SPEED"; btnSpeed.eventClick += OnSpeedClicked; btnSpeed.playAudioEvents = true; btnSpeed.spritePadding = new RectOffset(); UIMultiStateButton.SpriteSet btnSpeedSpriteSet0 = btnSpeed.foregroundSprites[0]; btnSpeedSpriteSet0.normal = "IconSpeed1Normal"; btnSpeedSpriteSet0.hovered = "IconSpeed1Hover"; btnSpeedSpriteSet0.pressed = "IconSpeed2Normal"; btnSpeed.backgroundSprites.AddState(); btnSpeed.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet btnSpeedSpriteSet1 = btnSpeed.foregroundSprites[1]; btnSpeedSpriteSet1.normal = "IconSpeed2Normal"; btnSpeedSpriteSet1.hovered = "IconSpeed2Hover"; btnSpeedSpriteSet1.pressed = "IconSpeed3Normal"; btnSpeed.backgroundSprites.AddState(); btnSpeed.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet btnSpeedSpriteSet2 = btnSpeed.foregroundSprites[2]; btnSpeedSpriteSet2.normal = "IconSpeed3Normal"; btnSpeedSpriteSet2.hovered = "IconSpeed3Hover"; btnSpeedSpriteSet2.pressed = "IconSpeed1Normal"; // 时间条 if (gameTimeSprite != null) { barTime = this.AddUIComponent <UISprite>(); barTime.name = "NewSprite"; barTime.size = new Vector2(140, 12); barTime.relativePosition = new Vector3(166, 4); barTime.atlas = gameTimeSprite.atlas; barTime.spriteName = gameTimeSprite.spriteName; barTime.fillAmount = 0.5f; barTime.fillDirection = UIFillDirection.Horizontal; barTime.color = gameTimeSprite.color; barTime.fillAmount = gameTimeSprite.fillAmount; } // 游戏日期标签 lblGameTime = this.AddUIComponent <MUILabel>(); lblGameTime.size = new Vector2(120, LINEW); lblGameTime.relativePosition = new Vector3(170, LINE2 - 3); lblGameTime.textColor = ExtendedPanel.COLOR_DARK_TEXT; lblGameTime.textAlignment = UIHorizontalAlignment.Center; //lblGameTime.fontStyle = FontStyle.Bold; lblGameTime.fontSize = (int)MUISkin.UIToScreen(11f); // 游戏时间标签 lblDayTimeA = this.AddUIComponent <UISprite>(); lblDayTimeA.size = new Vector2(14, 14); lblDayTimeA.relativePosition = new Vector3(107, 5); lblDayTimeA.spriteName = "InfoIconEntertainmentFocused"; lblDayTimeA.opacity = 0.3f; lblDayTimeA.playAudioEvents = (CityInfoDatas.TimeWarpMod_sunManager == null); lblDayTimeA.eventClick += OnDayTimeClicked; lblDayTime = this.AddUIComponent <MUILabel>(); lblDayTime.size = new Vector2(40, LINEW); lblDayTime.relativePosition = new Vector3(115, LINE1); lblDayTime.textColor = ExtendedPanel.COLOR_TEXT; lblDayTime.textAlignment = UIHorizontalAlignment.Right; lblDayTime.fontStyle = FontStyle.Bold; lblDayTime.fontSize = (int)MUISkin.UIToScreen(11f); lblDayTime.playAudioEvents = (CityInfoDatas.TimeWarpMod_sunManager == null); lblDayTime.eventClick += OnDayTimeClicked; // 本地时间 lblLocalTimeA = this.AddUIComponent <UISprite>(); lblLocalTimeA.size = new Vector2(7, 7); lblLocalTimeA.relativePosition = new Vector3(4, LINE2 + 5); lblLocalTimeA.spriteName = "OptionBaseFocused"; lblLocalTimeA.opacity = 0.3f; lblLocalTime = this.AddUIComponent <MUILabel>(); lblLocalTime.size = new Vector2(45, LINEW); lblLocalTime.relativePosition = new Vector3(14, LINE2 - 2); lblLocalTime.textColor = ExtendedPanel.COLOR_DARK_YELLOW; lblLocalTime.textAlignment = UIHorizontalAlignment.Left; lblLocalTime.fontStyle = FontStyle.Bold; lblLocalTime.fontSize = (int)MUISkin.UIToScreen(11f); lblLocalTime.eventClick += OnLocalTimeClick; lblLocalTime.playAudioEvents = true; // 温度 lblThermometerA = this.AddUIComponent <UISprite>(); lblThermometerA.size = new Vector2(16, 16); lblThermometerA.relativePosition = new Vector3(105, LINE2); lblThermometerA.spriteName = "ThermometerIcon"; lblThermometerA.opacity = 0.3f; lblThermometer = this.AddUIComponent <MUILabel>(); lblThermometer.size = new Vector2(40, LINEW); lblThermometer.relativePosition = new Vector3(115, LINE2); lblThermometer.textColor = ExtendedPanel.COLOR_DARK_TEXT; lblThermometer.textAlignment = UIHorizontalAlignment.Right; //lblThermometer.fontStyle = FontStyle.Bold; lblThermometer.fontSize = (int)MUISkin.UIToScreen(11f); lblThermometer.tooltipLocaleID = "MAIN_TEMPERATURE"; setGameState(); }
private bool CreateButton(UIComponent districtOptionPanel) { String[] iconNames = { "RoadArrowIcon", "Base", "BaseFocused", "BaseHovered", "BasePressed", "BaseDisabled", }; // Create Hierarchy view = UIView.GetAView(); panel = (UIPanel)view.AddUIComponent(typeof(UIPanel)); newGO = new GameObject(BUTTON_NAME); button = newGO.AddComponent <UIMultiStateButton>(); panel.AttachUIComponent(newGO); // Panel attributes panel.relativePosition = panelPos; panel.width = panelWidth; panel.name = PANEL_NAME; panel.isVisible = false; // Button attributes button.relativePosition = buttonPos; button.size = buttonSize; button.playAudioEvents = true; button.name = BUTTON_NAME; button.tooltip = "Display Zones"; button.isTooltipLocalized = false; button.spritePadding = new RectOffset(); button.activeStateIndex = 1; button.atlas = CreateTextureAtlas("icons.png", BUTTON_NAME + "Atlas", panel.atlas.material, 36, 36, iconNames); UIMultiStateButton.SpriteSet backgroundSpriteSet0 = button.backgroundSprites[0]; backgroundSpriteSet0.normal = "Base"; backgroundSpriteSet0.disabled = "Base"; backgroundSpriteSet0.hovered = "BaseHovered"; backgroundSpriteSet0.pressed = "Base"; backgroundSpriteSet0.focused = "Base"; button.backgroundSprites.AddState(); UIMultiStateButton.SpriteSet backgroundSpriteSet1 = button.backgroundSprites[1]; backgroundSpriteSet1.normal = "BaseFocused"; backgroundSpriteSet1.disabled = "BaseFocused"; backgroundSpriteSet1.hovered = "BaseFocused"; backgroundSpriteSet1.pressed = "BaseFocused"; backgroundSpriteSet1.focused = "BaseFocused"; UIMultiStateButton.SpriteSet foregroundSpriteSet0 = button.foregroundSprites[0]; foregroundSpriteSet0.normal = "RoadArrowIcon"; foregroundSpriteSet0.disabled = "RoadArrowIcon"; foregroundSpriteSet0.hovered = "RoadArrowIcon"; foregroundSpriteSet0.pressed = "RoadArrowIcon"; foregroundSpriteSet0.focused = "RoadArrowIcon"; button.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet foregroundSpriteSet1 = button.foregroundSprites[1]; foregroundSpriteSet1.normal = "RoadArrowIcon"; foregroundSpriteSet1.disabled = "RoadArrowIcon"; foregroundSpriteSet1.hovered = "RoadArrowIcon"; foregroundSpriteSet1.pressed = "RoadArrowIcon"; foregroundSpriteSet1.focused = "RoadArrowIcon"; // Districts Panel Listener districtOptionPanel.eventVisibilityChanged += districtOptionPanel_eventVisibilityChanged; // Button Listener button.eventActiveStateIndexChanged += button_eventActiveStateIndexChanged; return(true); }
public override void OnLevelLoaded(LoadMode p_mode) { if (p_mode == LoadMode.LoadAsset || p_mode == LoadMode.NewAsset) { return; } // Get the UIView object. This seems to be the top-level object for most // of the UI. var l_uiView = UIView.GetAView(); // Add a new button to the view. m_button = (UIMultiStateButton)l_uiView.AddUIComponent(typeof(UIMultiStateButton)); // Attach a sprite to the button m_lockImage = (UISprite)m_button.AddUIComponent(typeof(UISprite)); // Set the text to show on the button tooltip. m_button.tooltip = "OverLayer Switch - Right Click to lock layer movement (Ctrl+Shift+L)."; m_button.isTooltipLocalized = false; m_button.RefreshTooltip(); m_button.spritePadding = new RectOffset(); // Set the button dimensions. m_button.width = 36; m_button.height = 36; // Set the lock image m_lockImage.spriteName = "LockIcon"; m_lockImage.position = new Vector3(18, -18); m_lockImage.width = 24; m_lockImage.height = 24; m_lockImage.Hide(); if (m_lockImage.atlas == null || m_lockImage.atlas.material == null) { DebugLog("Could not get reference material!!!"); return; } // The sprite for the button can't be added to the InGame atlas, since the sprite data // seems to come from the atlas's texture, instead of the texture supplied by the SpriteData. // So a whole new atlas with the toggle button base images duplicated is needed. // Thanks to https://github.com/onewaycitystreets/StreetDirectionViewer/blob/master/ui/StreetDirectionViewerUI.cs String[] iconNames = { "RoadArrowIcon", "Base", "BaseFocused", "BaseHovered", "BasePressed", "BaseDisabled", }; m_button.atlas = CreateTextureAtlas("OverLayer.OverlayIcon.png", "OverLayer Atlas", m_lockImage.atlas.material, 36, 36, iconNames); // Background sprites // Disabled state UIMultiStateButton.SpriteSet backgroundSpriteSet0 = m_button.backgroundSprites[0]; backgroundSpriteSet0.normal = "Base"; backgroundSpriteSet0.disabled = "Base"; backgroundSpriteSet0.hovered = "BaseHovered"; backgroundSpriteSet0.pressed = "Base"; backgroundSpriteSet0.focused = "Base"; // Enabled state m_button.backgroundSprites.AddState(); UIMultiStateButton.SpriteSet backgroundSpriteSet1 = m_button.backgroundSprites[1]; backgroundSpriteSet1.normal = "BaseFocused"; backgroundSpriteSet1.disabled = "BaseFocused"; backgroundSpriteSet1.hovered = "BaseFocused"; backgroundSpriteSet1.pressed = "BaseFocused"; backgroundSpriteSet1.focused = "BaseFocused"; // Forground sprites // Disabled state UIMultiStateButton.SpriteSet foregroundSpriteSet0 = m_button.foregroundSprites[0]; foregroundSpriteSet0.normal = "RoadArrowIcon"; foregroundSpriteSet0.disabled = "RoadArrowIcon"; foregroundSpriteSet0.hovered = "RoadArrowIcon"; foregroundSpriteSet0.pressed = "RoadArrowIcon"; foregroundSpriteSet0.focused = "RoadArrowIcon"; // Enabled state m_button.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet foregroundSpriteSet1 = m_button.foregroundSprites[1]; foregroundSpriteSet1.normal = "RoadArrowIcon"; foregroundSpriteSet1.disabled = "RoadArrowIcon"; foregroundSpriteSet1.hovered = "RoadArrowIcon"; foregroundSpriteSet1.pressed = "RoadArrowIcon"; foregroundSpriteSet1.focused = "RoadArrowIcon"; // Enable button sounds. m_button.playAudioEvents = true; // Place the button. m_button.transformPosition = new Vector3(-1.11f, 0.98f); // Respond to button click. m_button.eventMouseUp += ButtonMouseUp; try { OverLayerTool.OnLevelLoaded(); OverLayerTool.SetDelegate(this); } catch (Exception e) { DebugLog("Error loading tool: " + e.ToString()); } DebugLog("Loaded"); }
public UIMultiStateButton AddAToggleButton(ToggleModRegistrationInfo mri) { if (mri == null || mri.SpriteInfo == null || mri.SpriteInfo_state2 == null) { Log.Error("AddaToggleButton() - invalid parameters."); return(null); } UIMultiStateButton retval = ScrollPanel.AddUIComponent <UIMultiStateButton>(); string uniquename = string.Format("{0}_{1}", mri.ModName, mri.ButtonText); retval.name = uniquename; retval.cachedName = uniquename; if (mri.SpriteInfo.NormalFgTexture != null) // this triggers use of all textures { string[] spritenames = { mri.SpriteInfo.NormalFgSpritename, mri.SpriteInfo.NormalBgSpritename, mri.SpriteInfo.HoveredFgSpritename, mri.SpriteInfo.HoveredBgSpritename, mri.SpriteInfo.PressedFgSpritename, mri.SpriteInfo.PressedBgSpritename, mri.SpriteInfo_state2.NormalFgSpritename, mri.SpriteInfo_state2.NormalBgSpritename, mri.SpriteInfo_state2.HoveredFgSpritename, mri.SpriteInfo_state2.HoveredBgSpritename, mri.SpriteInfo_state2.PressedFgSpritename, mri.SpriteInfo_state2.PressedBgSpritename }; Texture2D[] textures = { mri.SpriteInfo.NormalFgTexture, mri.SpriteInfo.NormalBgTexture, mri.SpriteInfo.HoveredFgTexture, mri.SpriteInfo.HoveredBgTexture, mri.SpriteInfo.PressedFgTexture, mri.SpriteInfo.PressedBgTexture, mri.SpriteInfo_state2.NormalFgTexture, mri.SpriteInfo_state2.NormalBgTexture, mri.SpriteInfo_state2.HoveredFgTexture, mri.SpriteInfo_state2.HoveredBgTexture, mri.SpriteInfo_state2.PressedFgTexture, mri.SpriteInfo_state2.PressedBgTexture }; retval.atlas = CreateAtlas(uniquename, spritenames, textures); } // we only support sprite image or texture buttons, no text-only (doesn't work properly for some reason) UIMultiStateButton.SpriteSetState fgSpriteSetState = retval.foregroundSprites; UIMultiStateButton.SpriteSetState bgSpriteSetState = retval.backgroundSprites; // these should never be null, and should start with one (empty) sprite set each, we'll need to add one more if (fgSpriteSetState == null || bgSpriteSetState == null) { Log.Error("AddaToggleButton() - UIMultiStateButton missing SpriteSetState."); RemoveAButton(retval.name); return(null); } UIMultiStateButton.SpriteSet fgSpriteSet = fgSpriteSetState[0]; UIMultiStateButton.SpriteSet bgSpriteSet = bgSpriteSetState[0]; if (fgSpriteSet == null) { fgSpriteSetState.AddState(); fgSpriteSet = fgSpriteSetState[0]; } if (bgSpriteSet == null) { bgSpriteSetState.AddState(); bgSpriteSet = bgSpriteSetState[0]; } // add state '0' fgSpriteSet.normal = mri.SpriteInfo.NormalFgSpritename; fgSpriteSet.hovered = mri.SpriteInfo.HoveredFgSpritename; fgSpriteSet.pressed = mri.SpriteInfo.PressedFgSpritename; bgSpriteSet.normal = mri.SpriteInfo.NormalBgSpritename; bgSpriteSet.hovered = mri.SpriteInfo.HoveredBgSpritename; bgSpriteSet.pressed = mri.SpriteInfo.PressedBgSpritename; // now add state '1' fgSpriteSetState.AddState(); bgSpriteSetState.AddState(); UIMultiStateButton.SpriteSet fgSpriteSet1 = fgSpriteSetState[1]; UIMultiStateButton.SpriteSet bgSpriteSet1 = bgSpriteSetState[1]; fgSpriteSet1.normal = mri.SpriteInfo_state2.NormalFgSpritename; fgSpriteSet1.hovered = mri.SpriteInfo_state2.HoveredFgSpritename; fgSpriteSet1.pressed = mri.SpriteInfo_state2.PressedFgSpritename; bgSpriteSet1.normal = mri.SpriteInfo_state2.NormalBgSpritename; bgSpriteSet1.hovered = mri.SpriteInfo_state2.HoveredBgSpritename; bgSpriteSet1.pressed = mri.SpriteInfo_state2.PressedBgSpritename; retval.state = UIMultiStateButton.ButtonState.Normal; // initial value retval.activeStateIndex = 0; retval.foregroundSpriteMode = UIForegroundSpriteMode.Scale; retval.spritePadding = new RectOffset(2, 2, 2, 2); retval.tooltip = mri.HoverText; retval.tooltipAnchor = UITooltipAnchor.Floating; retval.eventTooltipShow += (component, param) => { param.tooltip.relativePosition = new Vector3(param.tooltip.relativePosition.x + 25, param.tooltip.relativePosition.y, param.tooltip.relativePosition.z); }; retval.autoSize = false; retval.height = 50; retval.width = 50; retval.canFocus = false; retval.enabled = true; retval.isInteractive = true; retval.isVisible = true; retval.eventClick += (component, param) => { try { UIMultiStateButton compbutt = component as UIMultiStateButton; if (compbutt == null) { Log.Error(string.Format("Problem in callback handler for Mod: {0}", component.name)); return; } if (mri.ToggleCallback != null) { mri.ToggleCallback(component.name, compbutt.activeStateIndex); } } catch (Exception ex) { Log.Error(string.Format("Exception in callback to Mod: {0}. Exception: {1}", component.name, ex.Message)); } }; return(retval); }
/// <summary> /// Creates a toggle button (multi-state button) with THREE states: State 0, State 1, and State 2. /// </summary> /// <param name="bgPrefix0">State 0: background sprite prefix</param> /// <param name="bgPrefix1">State 1: background sprite prefix</param> /// <param name="bgPrefix2">State 2: background sprite prefix</param> /// <param name="fgPrefix0">State 0: foreground sprite prefix</param> /// <param name="fgPrefix1">State 1: foreground sprite prefix</param> /// <param name="fgPrefix2">State 2: foreground sprite prefix</param> /// <returns></returns> public static UIMultiStateButton AddAThreeStateButton(UIComponent parent, string name, UITextureAtlas atlas, string bgPrefix0, string bgPrefix1, string bgPrefix2, string fgPrefix0, string fgPrefix1, string fgPrefix2) { UIMultiStateButton _toggleButton = parent.AddUIComponent <UIMultiStateButton>(); _toggleButton.name = name; _toggleButton.cachedName = name; _toggleButton.atlas = atlas; UIMultiStateButton.SpriteSetState fgSpriteSetState = _toggleButton.foregroundSprites; UIMultiStateButton.SpriteSetState bgSpriteSetState = _toggleButton.backgroundSprites; if (fgSpriteSetState == null || bgSpriteSetState == null) { Debug.LogError("[PLT]: UIMultiStateButton missing SpriteSetState"); } UIMultiStateButton.SpriteSet fgSpriteSet0 = fgSpriteSetState[0]; UIMultiStateButton.SpriteSet bgSpriteSet0 = bgSpriteSetState[0]; if (fgSpriteSet0 == null) { fgSpriteSetState.AddState(); fgSpriteSet0 = fgSpriteSetState[0]; } if (bgSpriteSet0 == null) { bgSpriteSetState.AddState(); bgSpriteSet0 = bgSpriteSetState[0]; } //add state '0' if (fgPrefix0 != "") { fgSpriteSet0.normal = (fgPrefix0 + ""); fgSpriteSet0.focused = (fgPrefix0 + "Focused"); fgSpriteSet0.hovered = (fgPrefix0 + "Hovered"); fgSpriteSet0.pressed = (fgPrefix0 + "Pressed"); fgSpriteSet0.disabled = (fgPrefix0 + "Disabled"); } if (bgPrefix0 != "") { bgSpriteSet0.normal = (bgPrefix0 + ""); bgSpriteSet0.focused = (bgPrefix0 + "Focused"); bgSpriteSet0.hovered = (bgPrefix0 + "Hovered"); bgSpriteSet0.pressed = (bgPrefix0 + "Pressed"); bgSpriteSet0.disabled = (bgPrefix0 + "Disabled"); } //add state '1' fgSpriteSetState.AddState(); bgSpriteSetState.AddState(); UIMultiStateButton.SpriteSet fgSpriteSet1 = fgSpriteSetState[1]; UIMultiStateButton.SpriteSet bgSpriteSet1 = bgSpriteSetState[1]; if (fgPrefix1 != "") { fgSpriteSet1.normal = (fgPrefix1 + ""); fgSpriteSet1.focused = (fgPrefix1 + "Focused"); fgSpriteSet1.hovered = (fgPrefix1 + "Hovered"); fgSpriteSet1.pressed = (fgPrefix1 + "Pressed"); fgSpriteSet1.disabled = (fgPrefix1 + "Disabled"); } if (bgPrefix1 != "") { bgSpriteSet1.normal = (bgPrefix1 + ""); bgSpriteSet1.focused = (bgPrefix1 + "Focused"); bgSpriteSet1.hovered = (bgPrefix1 + "Hovered"); bgSpriteSet1.pressed = (bgPrefix1 + "Pressed"); bgSpriteSet1.disabled = (bgPrefix1 + "Disabled"); } //add state '2' fgSpriteSetState.AddState(); bgSpriteSetState.AddState(); UIMultiStateButton.SpriteSet fgSpriteSet2 = fgSpriteSetState[2]; UIMultiStateButton.SpriteSet bgSpriteSet2 = bgSpriteSetState[2]; if (fgPrefix2 != "") { fgSpriteSet2.normal = (fgPrefix2 + ""); fgSpriteSet2.focused = (fgPrefix2 + "Focused"); fgSpriteSet2.hovered = (fgPrefix2 + "Hovered"); fgSpriteSet2.pressed = (fgPrefix2 + "Pressed"); fgSpriteSet2.disabled = (fgPrefix2 + "Disabled"); } if (bgPrefix2 != "") { bgSpriteSet2.normal = (bgPrefix2 + ""); bgSpriteSet2.focused = (bgPrefix2 + "Focused"); bgSpriteSet2.hovered = (bgPrefix2 + "Hovered"); bgSpriteSet2.pressed = (bgPrefix2 + "Pressed"); bgSpriteSet2.disabled = (bgPrefix2 + "Disabled"); } //initial value _toggleButton.state = UIMultiStateButton.ButtonState.Normal; _toggleButton.activeStateIndex = 0; _toggleButton.foregroundSpriteMode = UIForegroundSpriteMode.Scale; _toggleButton.spritePadding = new RectOffset(0, 0, 0, 0); _toggleButton.autoSize = false; _toggleButton.canFocus = false; _toggleButton.enabled = true; _toggleButton.isInteractive = true; _toggleButton.isVisible = true; return(_toggleButton); }