コード例 #1
0
        public void OnGUI(Rect pos)
        {
            m_Position = pos;

            if (m_BundleTree == null)
            {
                if (m_AssetListState == null)
                {
                    m_AssetListState = new TreeViewState();
                }

                var headerState = AssetListTree.CreateDefaultMultiColumnHeaderState();// multiColumnTreeViewRect.width);
                if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_AssetListMCHState, headerState))
                {
                    MultiColumnHeaderState.OverwriteSerializedFields(m_AssetListMCHState, headerState);
                }
                m_AssetListMCHState = headerState;


                m_AssetList = new AssetListTree(m_AssetListState, m_AssetListMCHState, this);
                m_AssetList.Reload();
                m_MessageList = new MessageList();

                if (m_BundleDetailState == null)
                {
                    m_BundleDetailState = new TreeViewState();
                }
                m_DetailsList = new BundleDetailList(m_BundleDetailState);
                m_DetailsList.Reload();

                if (m_BundleTreeState == null)
                {
                    m_BundleTreeState = new TreeViewState();
                }
                m_BundleTree = new AssetBundleTree(m_BundleTreeState, this);
                m_BundleTree.Refresh();
                m_Parent.Repaint();
            }

            HandleHorizontalResize();
            HandleVerticalResize();


            if (AssetBundleModel.Model.BundleListIsEmpty())
            {
                m_BundleTree.OnGUI(m_Position);
                var style = GUI.skin.label;
                style.alignment = TextAnchor.MiddleCenter;
                style.wordWrap  = true;
                GUI.Label(
                    new Rect(m_Position.x + 1f, m_Position.y + 1f, m_Position.width - 2f, m_Position.height - 2f),
                    new GUIContent(AssetBundleModel.Model.GetEmptyMessage()),
                    style);
            }
            else
            {
                var bundleTreeMenu = new Rect(
                    m_Position.x,
                    m_Position.y,
                    m_HorizontalSplitterRect.x,
                    k_BundleTreeMenu);

                //Left half
                var bundleTreeRect = new Rect(
                    bundleTreeMenu.x,
                    bundleTreeMenu.y + bundleTreeMenu.height,
                    bundleTreeMenu.width,
                    m_VerticalSplitterRectLeft.y - bundleTreeMenu.y);

                DrawBundleTreeToolBarGUI(bundleTreeMenu);
                m_BundleTree.OnGUI(bundleTreeRect);
                m_DetailsList.OnGUI(new Rect(
                                        bundleTreeRect.x,
                                        bundleTreeRect.y + bundleTreeRect.height + k_SplitterWidth,
                                        bundleTreeRect.width,
                                        m_Position.height - bundleTreeRect.height - k_SplitterWidth * 2));


                //Right half.
                float panelLeft   = m_HorizontalSplitterRect.x + k_SplitterWidth;
                float panelWidth  = m_VerticalSplitterRectRight.width - k_SplitterWidth * 2;
                float panelHeight = m_VerticalSplitterRectRight.y - m_Position.y;
                m_AssetList.OnGUI(new Rect(
                                      panelLeft,
                                      m_Position.y,
                                      panelWidth,
                                      panelHeight));
                m_MessageList.OnGUI(new Rect(
                                        panelLeft,
                                        m_Position.y + panelHeight + k_SplitterWidth,
                                        panelWidth,
                                        (m_Position.height - panelHeight) - k_SplitterWidth * 2));

                if (m_ResizingHorizontalSplitter || m_ResizingVerticalSplitterRight || m_ResizingVerticalSplitterLeft)
                {
                    m_Parent.Repaint();
                }
            }
        }