コード例 #1
0
        void OnGUI()
        {
            var topRect = new Rect(5, 5, position.width - 10, 21);

            GUILayout.BeginArea(topRect);
            using (new EditorGUILayout.HorizontalScope())
            {
                if (GUILayout.Button("Add Bundle"))
                {
                    data.bundles.Add(new BundleBuilderData.BundleInfo()
                    {
                        id   = ++data.id,
                        name = $"bundle_{data.id}{BundleBuilderData.Ext}",
                    });
                    _treeView.Reload();
                }
                GUILayout.FlexibleSpace();
            }
            GUILayout.EndArea();
            var treeViewRect = new Rect(5, 28, position.width - 10, position.height - 56);

            _treeView.OnContextMenu(treeViewRect);
            _treeView.OnGUI(treeViewRect);
            var bottomRect = new Rect(5, treeViewRect.yMax + 5, treeViewRect.width, 21);

            GUILayout.BeginArea(bottomRect);
            using (new EditorGUILayout.HorizontalScope())
            {
                if (GUILayout.Button("Delete"))
                {
                    _treeView.DeleteSelectedItems();
                }
                GUILayout.FlexibleSpace();
                // if (GUILayout.Button("Expand All"))
                // {
                //     _treeView.ExpandAll();
                // }
                if (GUILayout.Button("Collapse All"))
                {
                    _treeView.CollapseAll();
                }
                if (GUILayout.Button("Expand All"))
                {
                    _treeView._ExpandAll();
                }
                GUILayout.Space(20f);
                if (GUILayout.Button("Refresh"))
                {
                    _treeView.Reload();
                }
                if (GUILayout.Button("Show Bundle Assets"))
                {
                    _treeView.ShowBundleReport();
                }
                if (GUILayout.Button("Build"))
                {
                    EditorApplication.delayCall += () =>
                    {
                        BundleBuilder.Build(data, "out/AssetBundles", EditorUserBuildSettings.activeBuildTarget);
                    };
                }
            }
            GUILayout.EndArea();

            if (dirty)
            {
                data.MarkAsDirty();
                dirty = false;
            }
        }
コード例 #2
0
        private void OnDrawPackages()
        {
            var margin       = 5f;
            var autoRect     = EditorGUILayout.GetControlRect(GUILayout.Height(1f));
            var treeViewTop  = autoRect.yMax;
            var bottomHeight = 21f;
            var treeViewRect = new Rect(5, treeViewTop + margin, position.width - 10,
                                        position.height - treeViewTop - bottomHeight - margin * 3f);
            var bottomRect = new Rect(5, treeViewRect.yMax + margin, treeViewRect.width, bottomHeight);

            _treeView.OnContextMenu(treeViewRect);
            _treeView.OnGUI(treeViewRect);
            GUILayout.BeginArea(bottomRect);
            using (new EditorGUILayout.HorizontalScope())
            {
                if (GUILayout.Button("Add Bundle"))
                {
                    _data.bundles.Add(new BundleBuilderData.BundleInfo()
                    {
                        id   = ++_data.id,
                        name = $"bundle_{_data.id}{BundleBuilderData.FileExt}",
                    });
                    _treeView.Reload();
                }

                if (GUILayout.Button("Add Asset List"))
                {
                    CreateAssetListData();
                }

                GUI.color = Color.red;
                if (GUILayout.Button("Delete"))
                {
                    _treeView.DeleteSelectedItems();
                }

                GUI.color = _GUIColor;

                GUILayout.FlexibleSpace();
                GUILayout.Space(20f);
                if (GUILayout.Button("Reload"))
                {
                    Reload();
                }

                GUILayout.Space(20f);
                EditorGUILayout.LabelField("Targets", GUILayout.Width(46f));
                var platforms = (PackagePlatform)EditorGUILayout.EnumPopup(_platform, GUILayout.Width(90f));
                if (platforms != _platform)
                {
                    _platform = platforms;
                    EditorPrefs.SetInt(KeyForPackagePlatforms, (int)_platform);
                }

                if (GUILayout.Button("Build Packages"))
                {
                    BundleBuilder.BuildPackages(_data, "", _platform);
                }
            }

            GUILayout.EndArea();
        }