Пример #1
0
    private void onWindowSelfDeactivate(WindowPanelBase wpb)
    {
        var i = panels.IndexOf(wpb);

        if (selectedIndex == i)
        {
            selectedIndex = -1;
        }
    }
Пример #2
0
    void Update()
    {
        if (selectedIndex != -1)
        {
            var rt = panels.ElementAt(selectedIndex).GetComponent <RectTransform>();
            if (rt.sizeDelta != rectTransform.sizeDelta)
            {
                rectTransform.sizeDelta = rt.sizeDelta;
            }
            if (!Panel.GetComponent <Image>().enabled)
            {
                Panel.GetComponent <Image>().enabled = true;
            }
            if (!GetComponent <Image>().enabled)
            {
                GetComponent <Image>().enabled = true;
            }
            Panel.GetComponent <Image>().color = panels.ElementAt(selectedIndex).BackgroundColor;
        }

        if (selectedIndex == -1)
        {
            if (GetComponent <Image>().enabled)
            {
                GetComponent <Image>().enabled = false;
            }
            if (Panel.GetComponent <Image>().enabled)
            {
                Panel.GetComponent <Image>().enabled = false;
            }
        }

        if (EscapeMenuScript.GetFirstOpenWindow() == UIWindow.CustomWindow)
        {
            if (Input.GetMouseButtonUp(0))
            {
                followMouse = false;
            }

            var pe = new PointerEventData(EventSystem.current)
            {
                position = Input.mousePosition
            };
            var hits = new List <RaycastResult>();
            Raycaster.Raycast(pe, hits);
            WindowPanelBase hit = null;
            hits.ForEach(res => hit = res.gameObject.GetComponentInParent <WindowPanelBase>() ?? hit);
            if (hit != null && panels.Contains(hit))
            {
                if (Input.GetMouseButtonDown(0))
                {
                    followMouse = true;
                }
            }

            if (followMouse)
            {
                var mouseDelta = Input.mousePosition - lastMousePos;
                Panel.transform.localPosition = panels[selectedIndex].Position += mouseDelta;
            }
        }

        lastMousePos = Input.mousePosition;
    }