/// <summary>
 ///
 /// </summary>
 void OnGUI()
 {
     if (GUILayoutHelper.DrawHeader("常规", "1", true, false))
     {
         DrawGeneral();
     }
     if (GUILayoutHelper.DrawHeader("场景(" + EditorCommon.SCENE_START_PATH + ")", "2", true, false))
     {
         DrawScenes();
     }
     if (GUILayoutHelper.DrawHeader("资源(" + EditorCommon.ASSET_START_PATH + ")", "3", true, false))
     {
         DrawAssets();
     }
 }
 /// <summary>
 ///
 /// </summary>
 void OnGUI()
 {
     if (GUILayoutHelper.DrawHeader("常规", "1", true, false))
     {
         DrawGeneral();
     }
     if (GUILayoutHelper.DrawHeader("资源(" + asset_bundle_build_.BuildStartFullPath + ")", "3", true, false))
     {
         DrawAssets();
     }
     if (GUILayoutHelper.DrawHeader("场景(" + EditorCommon.SCENE_START_PATH + ")", "2", true, false))
     {
         DrawScenes();
     }
 }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        void OnGUI()
        {
            GUI.color = Color.white;
            GUILayout.BeginHorizontal();
            GUILayout.Label("Current Resources Package", GUILayout.Width(176f));
            current_pack_name_ = GUILayout.TextField(current_pack_name_);
            if (GUILayout.Button("新建", GUILayout.Width(40f)))
            {
                ResourcesPackagesData.Package pack = new ResourcesPackagesData.Package()
                {
                    Name = current_pack_name_
                };
                AddPack(pack);
            }
            if (lastest_pack_ != null)
            {
                if (lastest_pack_.Name != current_pack_name_)
                {
                    if (GUILayout.Button("更新", GUILayout.Width(40f)))
                    {
                        UpdatePackName(lastest_pack_.Name, current_pack_name_);
                    }
                }
                else
                {
                    if (GUILayout.Button("删除", GUILayout.Width(40f)))
                    {
                        DeletePack(lastest_pack_.Name);
                    }
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.BeginVertical();
            scroll_ = GUILayout.BeginScrollView(scroll_);
            foreach (var pack in Packages.Data.Packages)
            {
                GUI.color = Color.white;

                bool   state = EditorPrefs.GetBool(pack.Key, true);
                string head  = pack.Key;
                if (lastest_pack_ != null && head == lastest_pack_.Name)
                {
                    head = "<color=green>" + head + "</color>";
                }
                bool show = GUILayoutHelper.DrawHeader(head, pack.Key, true, false);
                if (show != state)
                {
                    lastest_pack_      = pack.Value;
                    current_pack_name_ = pack.Key;
                }

                if (show)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Space(10f);
                    GUILayout.BeginVertical();
                    List <string> temp = new List <string>(pack.Value.AssetList);
                    foreach (var asset in temp)
                    {
                        string path  = EditorCommon.ProjectDirectory + asset;
                        bool   exist = System.IO.File.Exists(path) || System.IO.Directory.Exists(path);
                        GUI.color = exist ? Color.white : Color.red;
                        GUILayout.BeginHorizontal("AS TextArea", GUILayout.MinHeight(20f));
                        GUI.backgroundColor = Color.white;
                        GUILayout.Label(asset);

                        if (!exist)
                        {
                            GUILayout.Label("?", GUILayout.Width(22f));
                        }
                        if (GUILayout.Button("X", GUILayout.Width(22f)))
                        {
                            RemoveAsset(pack.Value, asset);
                        }
                        GUILayout.EndHorizontal();
                    }
                    GUILayout.EndVertical();
                    GUILayout.EndHorizontal();

                    GUI.color = Color.white;
                    GUILayout.BeginHorizontal();
                    GUILayout.Space(10f);
                    if (GUILayout.Button("添加选中的资源", GUILayout.Width(160f)))
                    {
                        AddSelectionAsset(pack.Value);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            GUILayout.EndHorizontal();

            GUILayout.Space(8f);
            if (GUILayout.Button("保存文件"))
            {
                SaveData();
                BuildAssetBundle.CopyResourcesPackageFileToStreamingAssets();
            }
        }
        /// <summary>
        /// 选中的树形节点信息
        /// </summary>
        bool DrawSelectAssetNodeInfo(out emAssetBundleNameRule rule
                                     , out bool is_compress, out bool is_native, out bool is_permanent, out bool is_startup_load)
        {
            rule            = emAssetBundleNameRule.None;
            is_compress     = false;
            is_native       = false;
            is_permanent    = false;
            is_startup_load = false;

            if (gui_multi_select_ == null || gui_multi_select_.SelectNodes.Count == 0)
            {
                return(false);
            }

            var asset_node = gui_multi_select_.SelectNodes[0] as AssetNode;

            rule            = (emAssetBundleNameRule)asset_node.Element.Rule;
            is_compress     = asset_node.Element.IsCompress;
            is_native       = asset_node.Element.IsNative;
            is_permanent    = asset_node.Element.IsPermanent;
            is_startup_load = asset_node.Element.IsStartupLoad;

            GUILayout.BeginVertical();

            //打包规则
            GUILayout.BeginHorizontal();
            GUILayout.Label("打包规则", GUILayout.Width(50f), GUILayout.MaxHeight(16f));
            emAssetBundleNameRule select_rule = (emAssetBundleNameRule)EditorGUILayout.EnumPopup("", rule, GUILayout.MaxWidth(150f), GUILayout.MaxHeight(16f));

            GUILayout.EndHorizontal();

            var  config             = AssetBundleBuildWindow.Instance.asset_bundle_build_.Data;
            bool is_compress_op     = is_compress;
            bool is_native_op       = is_native;
            bool is_permanent_op    = is_permanent;
            bool is_startup_load_op = is_startup_load;

            if (select_rule == emAssetBundleNameRule.SingleFile ||
                select_rule == emAssetBundleNameRule.Folder)
            {
                is_compress_op     = GUILayoutHelper.Toggle(is_compress_op, "压缩", config.IsAllCompress);
                is_native_op       = GUILayoutHelper.Toggle(is_native_op, "打包到安装包", config.IsAllNative);
                is_permanent_op    = GUILayout.Toggle(is_permanent_op, "常驻内存");
                is_startup_load_op = GUILayout.Toggle(is_startup_load_op, "启动时加载");
            }

            if (asset_node != null && asset_node.GranularityDetails != null)
            {
                GUILayout.Space(20f);
                GUILayout.Label("粒度详细引用信息", "OL Title");
                GUILayout.TextArea(asset_node.GranularityDetails);
            }

            GUILayout.EndVertical();

            if (select_rule != rule ||
                is_compress != is_compress_op ||
                is_native != is_native_op ||
                is_permanent != is_permanent_op ||
                is_startup_load != is_startup_load_op)
            {
                rule            = select_rule;
                is_compress     = is_compress_op;
                is_native       = is_native_op;
                is_permanent    = is_permanent_op;
                is_startup_load = is_startup_load_op;
                return(true);
            }

            return(false);
        }
Example #5
0
            /// <summary>
            /// 渲染
            /// </summary>
            public override GUILayoutMultiSelectGroup.OperateResult Draw(float width)
            {
                if (AssetBundle == null)
                {
                    return(null);
                }

                var config = AssetBundleBrowseWindow.Instance.Manifest.Data;

                GUI.backgroundColor = IsSelect ? Color.white : new Color(0.8f, 0.8f, 0.8f);
                GUILayout.BeginHorizontal("AS TextArea", GUILayout.MinHeight(20f));
                GUI.color = IsSelect ? Color.yellow : Color.white;
                GUILayout.Label(Index.ToString(), GUILayout.Width(24f));
                bool  toggle   = GUILayout.Button(AssetBundle.AssetBundleName, "OL TextField", GUILayout.Height(20f));
                float size     = (float)AssetBundle.Size / 1024f;
                bool  toggle_1 = GUILayout.Button(size.ToString("F2") + "KB", "OL TextField", GUILayout.Width(108f));

                GUILayout.Space(32f);
                bool is_compress = GUILayoutHelper.Toggle(config.IsAllCompress || AssetBundle.IsCompress, "", config.IsAllCompress, GUILayout.Width(24f));

                GUILayout.Space(40f);
                bool is_native = GUILayoutHelper.Toggle(config.IsAllNative || AssetBundle.IsNative, "", config.IsAllNative, GUILayout.Width(24f));

                GUILayout.Space(40f);
                bool is_permanent = GUILayoutHelper.Toggle(AssetBundle.IsPermanent, "", false, GUILayout.Width(24f));

                GUILayout.Space(40f);
                bool is_startup_load = GUILayoutHelper.Toggle(AssetBundle.IsStartupLoad, "", false, GUILayout.Width(24f));

                GUILayout.EndHorizontal();
                GUI.color           = Color.white;
                GUI.backgroundColor = Color.white;

                SelectResultStatus.Operate op = SelectResultStatus.Operate.None;
                if (is_compress != AssetBundle.IsCompress)
                {
                    op = SelectResultStatus.Operate.Compress;
                }
                if (is_native != AssetBundle.IsNative)
                {
                    op = SelectResultStatus.Operate.Native;
                }
                if (is_permanent != AssetBundle.IsPermanent)
                {
                    op = SelectResultStatus.Operate.Permanent;
                }
                if (is_startup_load != AssetBundle.IsStartupLoad)
                {
                    op = SelectResultStatus.Operate.StartupLoad;
                }

                if (toggle || toggle_1 || op != SelectResultStatus.Operate.None)
                {
                    return(new GUILayoutMultiSelectGroup.OperateResult()
                    {
                        SelectNode = this,
                        Status = new SelectResultStatus()
                        {
                            Op = op,
                            IsCompress = is_compress,
                            IsNative = is_native,
                            IsPermanent = is_permanent,
                            IsStartupLoad = is_startup_load,
                        },
                    });
                }

                return(null);
            }