示例#1
0
    //////////////////
    // Widget management
    //////////////////
    public void UpdateWidgets()
    {
        if (currentPage == null)
        {
            return;
        }

        mouseOver.Clear();

        // Update widget lists
        widgets = GetCurrentWidgets();

        for (int i = 0; i < widgets.Length; i++)
        {
            OGWidget w = widgets[i];

            if (w == null || !w.isDrawn || w.isDisabled)
            {
                continue;
            }

            // Check mouse
            if (w.CheckMouseOver())
            {
                w.OnMouseOver();
                mouseOver.Add(w);
            }

            // Check scroll offset
            if (!w.clipTo)
            {
                w.scrollOffset.x = 0;
                w.scrollOffset.y = 0;
            }

            w.root             = this;
            w.gameObject.layer = this.gameObject.layer;
            w.UpdateWidget();
            w.Recalculate();

            // Cleanup from previous OpenGUI versions
            if (w.hidden)
            {
                DestroyImmediate(w.gameObject);
            }
        }

        // Is mouse over anything?
        isMouseOver = mouseOver.Count > 0;
    }