protected virtual void Awake() { if (this.m_AutoFindButtons) { Transform transform = base.transform; if (transform) { List <GameObject> list = new List <GameObject>(); foreach (RectTransform rectTransform in General.GetComponentsDeepChild <RectTransform>(transform.gameObject)) { if (rectTransform.GetComponent <Button>() || rectTransform.GetComponent <UISliderEx>() || rectTransform.GetComponent <UISelectButton>()) { list.Add(rectTransform.gameObject); } } foreach (GameObject gameObject in list) { Button component = gameObject.GetComponent <Button>(); if (component) { this.AddMenuButton(component, null); } else { UISliderEx component2 = gameObject.GetComponent <UISliderEx>(); if (component2) { this.AddMenuSlider(component2); } else { UISelectButton component3 = gameObject.GetComponent <UISelectButton>(); if (component3) { this.AddSelectButton(component3); } } } } } } this.m_ChangeableOptions = base.GetComponentsInChildren <IUIChangeableOption>(); }
public virtual void AddMenuSlider(UISliderEx slider) { if (slider == null) { return; } Transform parent = slider.transform.parent; Transform transform = parent.FindDeepChild("Title"); if (!transform) { DebugUtils.Assert(transform, "Slider object is missing 'Title'!", true, DebugUtils.AssertType.Info); return; } slider.enabled = true; if (!this.m_OptionsObjects.Values.Any((MenuBase.MenuOptionData d) => d.m_Slider == slider)) { Text componentInChildren = transform.GetComponentInChildren <Text>(); RectTransform rectTransform = slider.transform.parent.GetComponent <RectTransform>() ?? transform.GetComponent <RectTransform>(); this.m_OptionsObjects.Add(parent.gameObject, new MenuBase.MenuOptionData { m_Slider = slider, m_Object = parent.gameObject, m_Texts = new Text[] { componentInChildren }, m_ExtentRectTransforms = new RectTransform[] { rectTransform, slider.GetComponent <RectTransform>() }, m_InteractRectTransforms = new RectTransform[] { slider.transform.FindDeepChild("Fill").GetComponent <RectTransform>(), slider.transform.FindDeepChild("Handle").GetComponent <RectTransform>() } }); } }
public void UpdateActiveMenuOption(MenuBase.MenuOptionData data) { if (data.m_Object == null) { return; } bool flag = true; if (data.m_Button && !this.IsMenuButtonEnabled(data.m_Button)) { flag = false; } else if (data.m_Slider && !this.IsMenuSliderEnabled(data.m_Slider)) { flag = false; } else if (data.m_SelectButton && !this.IsMenuSelectButtonEnabled(data.m_SelectButton)) { flag = false; } else if (!data.m_Object.activeSelf) { flag = false; } if (data.m_Button) { data.m_Button.interactable = flag; } else if (data.m_Slider) { data.m_Slider.interactable = flag; } else if (data.m_SelectButton) { data.m_SelectButton.enabled = flag; } if (!flag) { data.SetColorAlpha(MenuScreen.s_InactiveButtonsAlpha); return; } MenuBase.MenuOptionData activeMenuOption = this.m_ActiveMenuOption; bool?flag2; if (activeMenuOption == null) { flag2 = null; } else { UISliderEx slider = activeMenuOption.m_Slider; flag2 = ((slider != null) ? new bool?(slider.m_IsDragged) : null); } if (flag2 ?? false) { return; } if (data.m_Slider && data.m_Slider.m_IsDragged) { this.m_ActiveMenuOption = data; this.m_ActiveMenuOptionCanInteract = false; return; } Vector2 screenPoint = Input.mousePosition; RectTransform[] extentRectTransforms = data.m_ExtentRectTransforms; for (int i = 0; i < extentRectTransforms.Length; i++) { if (RectTransformUtility.RectangleContainsScreenPoint(extentRectTransforms[i], screenPoint)) { this.m_ActiveMenuOption = data; this.m_ActiveMenuOptionCanInteract = false; RectTransform[] interactRectTransforms = data.m_InteractRectTransforms; for (int j = 0; j < interactRectTransforms.Length; j++) { if (RectTransformUtility.RectangleContainsScreenPoint(interactRectTransforms[j], screenPoint)) { this.m_ActiveMenuOptionCanInteract = true; return; } } return; } } }
public abstract void ValueChanged(UISliderEx slider);