Esempio n. 1
0
 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>();
 }
Esempio n. 2
0
    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>()
                }
            });
        }
    }
Esempio n. 3
0
    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;
            }
        }
    }
Esempio n. 4
0
 public abstract void ValueChanged(UISliderEx slider);