/// <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(); } }
/// <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); }
/// <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); }