/// <summary>
        /// 初始化页面
        /// </summary>
        public void InitViewer()
        {
            // 加载布局文件
            _visualAsset = EditorHelper.LoadWindowUXML <DebuggerAssetListViewer>();
            if (_visualAsset == null)
            {
                return;
            }

            _root = _visualAsset.CloneTree();
            _root.style.flexGrow = 1f;

            // 资源列表
            _assetListView          = _root.Q <ListView>("TopListView");
            _assetListView.makeItem = MakeAssetListViewItem;
            _assetListView.bindItem = BindAssetListViewItem;
#if UNITY_2020_1_OR_NEWER
            _assetListView.onSelectionChange += AssetListView_onSelectionChange;
#else
            _assetListView.onSelectionChanged += AssetListView_onSelectionChange;
#endif

            // 依赖列表
            _dependListView          = _root.Q <ListView>("BottomListView");
            _dependListView.makeItem = MakeDependListViewItem;
            _dependListView.bindItem = BindDependListViewItem;
        }
        public void CreateGUI()
        {
            try
            {
                VisualElement root = this.rootVisualElement;

                // 加载布局文件
                var visualAsset = EditorHelper.LoadWindowUXML <AssetBundleReporterWindow>();
                if (visualAsset == null)
                {
                    return;
                }

                visualAsset.CloneTree(root);

                // 导入按钮
                var importBtn = root.Q <Button>("ImportButton");
                importBtn.clicked += ImportBtn_onClick;

                // 视图模式菜单
                _viewModeMenu = root.Q <ToolbarMenu>("ViewModeMenu");
                _viewModeMenu.menu.AppendAction(EViewMode.Summary.ToString(), ViewModeMenuAction0, ViewModeMenuFun0);
                _viewModeMenu.menu.AppendAction(EViewMode.AssetView.ToString(), ViewModeMenuAction1, ViewModeMenuFun1);
                _viewModeMenu.menu.AppendAction(EViewMode.BundleView.ToString(), ViewModeMenuAction2, ViewModeMenuFun2);

                // 搜索栏
                var searchField = root.Q <ToolbarSearchField>("SearchField");
                searchField.RegisterValueChangedCallback(OnSearchKeyWordChange);

                // 加载视图
                _summaryViewer = new ReporterSummaryViewer();
                _summaryViewer.InitViewer();

                // 加载视图
                _assetListViewer = new ReporterAssetListViewer();
                _assetListViewer.InitViewer();

                // 加载视图
                _bundleListViewer = new ReporterBundleListViewer();
                _bundleListViewer.InitViewer();

                // 显示视图
                _viewMode          = EViewMode.Summary;
                _viewModeMenu.text = EViewMode.Summary.ToString();
                _summaryViewer.AttachParent(root);
            }
            catch (Exception e)
            {
                Debug.LogError(e.ToString());
            }
        }
        /// <summary>
        /// 初始化页面
        /// </summary>
        public void InitViewer()
        {
            // 加载布局文件
            _visualAsset = EditorHelper.LoadWindowUXML <ReporterSummaryViewer>();
            if (_visualAsset == null)
            {
                return;
            }

            _root = _visualAsset.CloneTree();
            _root.style.flexGrow = 1f;

            // 概述列表
            _listView          = _root.Q <ListView>("ListView");
            _listView.makeItem = MakeListViewItem;
            _listView.bindItem = BindListViewItem;
        }
        /// <summary>
        /// 初始化页面
        /// </summary>
        public void InitViewer()
        {
            // 加载布局文件
            _visualAsset = EditorHelper.LoadWindowUXML <ReporterBundleListViewer>();
            if (_visualAsset == null)
            {
                return;
            }

            _root = _visualAsset.CloneTree();
            _root.style.flexGrow = 1f;

            // 顶部按钮栏
            _topBar1          = _root.Q <ToolbarButton>("TopBar1");
            _topBar2          = _root.Q <ToolbarButton>("TopBar2");
            _topBar3          = _root.Q <ToolbarButton>("TopBar3");
            _topBar4          = _root.Q <ToolbarButton>("TopBar4");
            _topBar1.clicked += TopBar1_clicked;
            _topBar2.clicked += TopBar2_clicked;
            _topBar3.clicked += TopBar3_clicked;
            _topBar4.clicked += TopBar4_clicked;

            // 底部按钮栏
            _bottomBar1 = _root.Q <ToolbarButton>("BottomBar1");

            // 资源包列表
            _bundleListView          = _root.Q <ListView>("TopListView");
            _bundleListView.makeItem = MakeBundleListViewItem;
            _bundleListView.bindItem = BindBundleListViewItem;
#if UNITY_2020_1_OR_NEWER
            _bundleListView.onSelectionChange += BundleListView_onSelectionChange;
#else
            _bundleListView.onSelectionChanged += BundleListView_onSelectionChange;
#endif

            // 包含列表
            _includeListView          = _root.Q <ListView>("BottomListView");
            _includeListView.makeItem = MakeIncludeListViewItem;
            _includeListView.bindItem = BindIncludeListViewItem;
        }
        /// <summary>
        /// 初始化页面
        /// </summary>
        public void InitViewer()
        {
            // 加载布局文件
            _visualAsset = EditorHelper.LoadWindowUXML <ReporterAssetListViewer>();
            if (_visualAsset == null)
            {
                return;
            }

            _root = _visualAsset.CloneTree();
            _root.style.flexGrow = 1f;

            // 顶部按钮栏
            _topBar1          = _root.Q <ToolbarButton>("TopBar1");
            _topBar2          = _root.Q <ToolbarButton>("TopBar2");
            _topBar1.clicked += TopBar1_clicked;
            _topBar2.clicked += TopBar2_clicked;

            // 底部按钮栏
            _bottomBar1 = _root.Q <ToolbarButton>("BottomBar1");

            // 资源列表
            _assetListView          = _root.Q <ListView>("TopListView");
            _assetListView.makeItem = MakeAssetListViewItem;
            _assetListView.bindItem = BindAssetListViewItem;
#if UNITY_2020_1_OR_NEWER
            _assetListView.onSelectionChange += AssetListView_onSelectionChange;
#else
            _assetListView.onSelectionChanged += AssetListView_onSelectionChange;
#endif

            // 依赖列表
            _dependListView          = _root.Q <ListView>("BottomListView");
            _dependListView.makeItem = MakeDependListViewItem;
            _dependListView.bindItem = BindDependListViewItem;
        }
Exemple #6
0
        public void CreateGUI()
        {
            try
            {
                VisualElement root = this.rootVisualElement;

                // 加载布局文件
                var visualAsset = EditorHelper.LoadWindowUXML <AssetBundleBuilderWindow>();
                if (visualAsset == null)
                {
                    return;
                }

                visualAsset.CloneTree(root);

                _buildTarget = EditorUserBuildSettings.activeBuildTarget;
                _encryptionServicesClassTypes = GetEncryptionServicesClassTypes();
                _encryptionServicesClassNames = _encryptionServicesClassTypes.Select(t => t.FullName).ToList();

                // 输出目录
                string defaultOutputRoot       = AssetBundleBuilderHelper.GetDefaultOutputRoot();
                string pipelineOutputDirectory = AssetBundleBuilderHelper.MakePipelineOutputDirectory(defaultOutputRoot, _buildTarget);
                _buildOutputField = root.Q <TextField>("BuildOutput");
                _buildOutputField.SetValueWithoutNotify(pipelineOutputDirectory);
                _buildOutputField.SetEnabled(false);

                // 构建版本
                _buildVersionField = root.Q <IntegerField>("BuildVersion");
                _buildVersionField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.BuildVersion);
                _buildVersionField.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleBuilderSettingData.Setting.BuildVersion = _buildVersionField.value;
                });

                // 构建模式
                _buildModeField = root.Q <EnumField>("BuildMode");
                _buildModeField.Init(AssetBundleBuilderSettingData.Setting.BuildMode);
                _buildModeField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.BuildMode);
                _buildModeField.style.width = 300;
                _buildModeField.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleBuilderSettingData.Setting.BuildMode = (EBuildMode)_buildModeField.value;
                    RefreshWindow();
                });

                // 内置资源标签
                _buildinTagsField = root.Q <TextField>("BuildinTags");
                _buildinTagsField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.BuildTags);
                _buildinTagsField.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleBuilderSettingData.Setting.BuildTags = _buildinTagsField.value;
                });

                // 加密方法
                var encryptionContainer = root.Q("EncryptionContainer");
                if (_encryptionServicesClassNames.Count > 0)
                {
                    int defaultIndex = GetEncryptionDefaultIndex(AssetBundleBuilderSettingData.Setting.EncyptionClassName);
                    _encryptionField             = new PopupField <string>(_encryptionServicesClassNames, defaultIndex);
                    _encryptionField.label       = "Encryption";
                    _encryptionField.style.width = 300;
                    _encryptionField.RegisterValueChangedCallback(evt =>
                    {
                        AssetBundleBuilderSettingData.Setting.EncyptionClassName = _encryptionField.value;
                    });
                    encryptionContainer.Add(_encryptionField);
                }
                else
                {
                    _encryptionField             = new PopupField <string>();
                    _encryptionField.label       = "Encryption";
                    _encryptionField.style.width = 300;
                    encryptionContainer.Add(_encryptionField);
                }

                // 压缩方式
                _compressionField = root.Q <EnumField>("Compression");
                _compressionField.Init(AssetBundleBuilderSettingData.Setting.CompressOption);
                _compressionField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.CompressOption);
                _compressionField.style.width = 300;
                _compressionField.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleBuilderSettingData.Setting.CompressOption = (ECompressOption)_compressionField.value;
                });

                // 附加后缀格式
                _appendExtensionToggle = root.Q <Toggle>("AppendExtension");
                _appendExtensionToggle.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.AppendExtension);
                _appendExtensionToggle.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleBuilderSettingData.Setting.AppendExtension = _appendExtensionToggle.value;
                });

                // 拷贝首包文件
                _copyBuildinTagFilesToggle = root.Q <Toggle>("CopyBuildinFiles");
                _copyBuildinTagFilesToggle.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.CopyBuildinTagFiles);
                _copyBuildinTagFilesToggle.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleBuilderSettingData.Setting.CopyBuildinTagFiles = _copyBuildinTagFilesToggle.value;
                });

                // 构建按钮
                var buildButton = root.Q <Button>("Build");
                buildButton.clicked += BuildButton_clicked;;

                RefreshWindow();
            }
            catch (Exception e)
            {
                Debug.LogError(e.ToString());
            }
        }
        public void CreateGUI()
        {
            Undo.undoRedoPerformed -= RefreshWindow;
            Undo.undoRedoPerformed += RefreshWindow;

            try
            {
                _collectorTypeList = new List <string>()
                {
                    $"{nameof(ECollectorType.MainAssetCollector)}",
                    $"{nameof(ECollectorType.StaticAssetCollector)}",
                    $"{nameof(ECollectorType.DependAssetCollector)}"
                };
                _addressRuleList = AssetBundleCollectorSettingData.GetAddressRuleNames();
                _packRuleList    = AssetBundleCollectorSettingData.GetPackRuleNames();
                _filterRuleList  = AssetBundleCollectorSettingData.GetFilterRuleNames();

                VisualElement root = this.rootVisualElement;

                // 加载布局文件
                var visualAsset = EditorHelper.LoadWindowUXML <AssetBundleCollectorWindow>();
                if (visualAsset == null)
                {
                    return;
                }

                visualAsset.CloneTree(root);

                // 导入导出按钮
                var exportBtn = root.Q <Button>("ExportButton");
                exportBtn.clicked += ExportBtn_clicked;
                var importBtn = root.Q <Button>("ImportButton");
                importBtn.clicked += ImportBtn_clicked;

                // 公共设置相关
                _enableAddressableToogle = root.Q <Toggle>("EnableAddressable");
                _enableAddressableToogle.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleCollectorSettingData.ModifyAddressable(evt.newValue);
                });
                _autoCollectShaderToogle = root.Q <Toggle>("AutoCollectShader");
                _autoCollectShaderToogle.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleCollectorSettingData.ModifyShader(evt.newValue, _shaderBundleNameTxt.value);
                    _shaderBundleNameTxt.SetEnabled(evt.newValue);
                });
                _shaderBundleNameTxt = root.Q <TextField>("ShaderBundleName");
                _shaderBundleNameTxt.RegisterValueChangedCallback(evt =>
                {
                    AssetBundleCollectorSettingData.ModifyShader(_autoCollectShaderToogle.value, evt.newValue);
                });

                // 分组列表相关
                _groupListView          = root.Q <ListView>("GroupListView");
                _groupListView.makeItem = MakeGroupListViewItem;
                _groupListView.bindItem = BindGroupListViewItem;
#if UNITY_2020_1_OR_NEWER
                _groupListView.onSelectionChange += GroupListView_onSelectionChange;
#else
                _groupListView.onSelectionChanged += GroupListView_onSelectionChange;
#endif

                // 分组添加删除按钮
                var groupAddContainer = root.Q("GroupAddContainer");
                {
                    var addBtn = groupAddContainer.Q <Button>("AddBtn");
                    addBtn.clicked += AddGroupBtn_clicked;
                    var removeBtn = groupAddContainer.Q <Button>("RemoveBtn");
                    removeBtn.clicked += RemoveGroupBtn_clicked;
                }

                // 分组容器
                _groupContainer = root.Q("GroupContainer");

                // 分组名称
                _groupNameTxt = root.Q <TextField>("GroupName");
                _groupNameTxt.RegisterValueChangedCallback(evt =>
                {
                    var selectGroup = _groupListView.selectedItem as AssetBundleCollectorGroup;
                    if (selectGroup != null)
                    {
                        selectGroup.GroupName = evt.newValue;
                        AssetBundleCollectorSettingData.ModifyGroup(selectGroup);
                    }
                });

                // 分组备注
                _groupDescTxt = root.Q <TextField>("GroupDesc");
                _groupDescTxt.RegisterValueChangedCallback(evt =>
                {
                    var selectGroup = _groupListView.selectedItem as AssetBundleCollectorGroup;
                    if (selectGroup != null)
                    {
                        selectGroup.GroupDesc = evt.newValue;
                        AssetBundleCollectorSettingData.ModifyGroup(selectGroup);
                    }
                });

                // 分组的资源标签
                _groupAssetTagsTxt = root.Q <TextField>("GroupAssetTags");
                _groupAssetTagsTxt.RegisterValueChangedCallback(evt =>
                {
                    var selectGroup = _groupListView.selectedItem as AssetBundleCollectorGroup;
                    if (selectGroup != null)
                    {
                        selectGroup.AssetTags = evt.newValue;
                        AssetBundleCollectorSettingData.ModifyGroup(selectGroup);
                    }
                });

                // 收集列表相关
                _collectorScrollView = root.Q <ScrollView>("CollectorScrollView");
                _collectorScrollView.style.height = new Length(100, LengthUnit.Percent);
                _collectorScrollView.viewDataKey  = "scrollView";

                // 收集器创建按钮
                var collectorAddContainer = root.Q("CollectorAddContainer");
                {
                    var addBtn = collectorAddContainer.Q <Button>("AddBtn");
                    addBtn.clicked += AddCollectorBtn_clicked;
                }

                // 刷新窗体
                RefreshWindow();
            }
            catch (System.Exception e)
            {
                Debug.LogError(e.ToString());
            }
        }