/// <summary> /// 一键导出 /// </summary> public void OnGUI_OneKeyExprot() { GUILayout.BeginVertical(GUILayout.Width(this.maxSize.x / 2), GUILayout.Height(350)); { GUILayout.Label("资源发布:", EditorGUIHelper.GetFontStyle(Color.red, 15)); EditorGUILayout.HelpBox("版本号采用三段式:0.0.1,前两位可以自定义,最后一位默认自增!\n默认导出地址:Devops/PublishAssets", MessageType.Info); GUILayout.Space(5); // foreach (var sp in BApplication.SupportPlatform) { GUILayout.BeginHorizontal(); { var isHas = selectPlatforms.Contains(sp); //选择 var isSelcet = GUILayout.Toggle(isHas, $"生成{BApplication.GetPlatformPath(sp)}资产", GUILayout.Width(150)); // if (isHas != isSelcet) { if (isSelcet) { selectPlatforms.Add(sp); } else { selectPlatforms.Remove(sp); } } var basePackageBuildInfo = BasePackageAssetsHelper.GetPacakgeBuildInfo(EXPORT_PATH, sp); string setVersionNum = ""; var ret = platformVersionMap.TryGetValue(sp, out setVersionNum); if (!ret) { platformVersionMap[sp] = basePackageBuildInfo.Version; } //根据即将设置信息开始解析 var vs = platformVersionMap[sp].Split('.'); int bigNum = 0; int smallNum = 0; int additiveNum = 0; bigNum = int.Parse(vs[0]); smallNum = int.Parse(vs[1]); additiveNum = int.Parse(vs[2]); //version.info信息 渲染 GUILayout.Label("Ver:", GUILayout.Width(30)); bigNum = EditorGUILayout.IntField(bigNum, GUILayout.Width(20)); GUILayout.Label(".", GUILayout.Width(5)); smallNum = EditorGUILayout.IntField(smallNum, GUILayout.Width(20)); GUILayout.Label(".", GUILayout.Width(5)); GUILayout.Label(additiveNum.ToString(), GUILayout.Width(40)); //保存 设置信息 setVersionNum = string.Format("{0}.{1}.{2}", bigNum, smallNum, additiveNum); //渲染预览信息 GUILayout.Space(10); var newVersion = VersionNumHelper.AddVersionNum(basePackageBuildInfo.Version, setVersionNum); GUILayout.Label($"预览: {basePackageBuildInfo.Version} => {newVersion}"); platformVersionMap[sp] = setVersionNum; } GUILayout.EndHorizontal(); GUILayout.Space(2); } // GUILayout.Space(5); if (GUILayout.Button("一键导出所选平台资产(脚本、美术、表格)", GUILayout.Width(350), GUILayout.Height(30))) { if (isBuilding) { return; } isBuilding = true; //开始 生成资源 foreach (var sp in selectPlatforms) { BuildAssetsTools.BuildAllAssets(sp, EXPORT_PATH, platformVersionMap[sp]); platformVersionMap.Remove(sp); } isBuilding = false; } // if (GUILayout.Button("热更资源转hash(生成服务器配置)", GUILayout.Width(350), GUILayout.Height(30))) { //自动转hash PublishPipelineTools.PublishAssetsToServer(EXPORT_PATH); } GUILayout.Space(20); GUILayout.Label("调试功能:", EditorGUIHelper.LabelH4); GUILayout.BeginHorizontal(); { if (GUILayout.Button("拷贝资源到Streaming", GUILayout.Width(175), GUILayout.Height(30))) { //路径 var source = IPath.Combine(EXPORT_PATH, BApplication.GetRuntimePlatformPath()); var target = IPath.Combine(Application.streamingAssetsPath, BApplication.GetRuntimePlatformPath()); if (Directory.Exists(target)) { Directory.Delete(target, true); } //拷贝 FileHelper.CopyFolderTo(source, target); AssetDatabase.Refresh(); } if (GUILayout.Button("删除Streaming资源", GUILayout.Width(175), GUILayout.Height(30))) { var target = IPath.Combine(Application.streamingAssetsPath, BApplication.GetRuntimePlatformPath()); Directory.Delete(target, true); } } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); }
/// <summary> /// 文件服务器 /// </summary> public void OnGUI_PublishEditorService() { //playmode时候启动 this.StartAssetsServerOnPlayMode(); GUILayout.BeginVertical(GUILayout.Width(this.maxSize.x / 2)); { GUILayout.Label("AB文件服务器:", EditorGUIHelper.GetFontStyle(Color.red, 15)); EditorGUILayout.HelpBox("在本机Devops搭建文件服务器,提供测试下载功能", MessageType.Info); if (EditorHttpListener == null) { if (GUILayout.Button("启动本机文件服务器")) { StartLocalAssetsFileServer(); } } else { GUI.color = Color.green; if (GUILayout.Button("[已启动]关闭本机文件服务器")) { StopLocalAssetsFileServer(); } GUI.color = GUI.backgroundColor; } GUILayout.Space(10); string weburl = ""; if (EditorHttpListener != null) { var ip = IPHelper.GetLocalIP(); weburl = "http://" + ip + ":" + EditorHttpListener.port; } GUILayout.BeginHorizontal(); { GUILayout.Label("weburl: " + weburl); if (GUILayout.Button("复制", GUILayout.Width(40))) { GUIUtility.systemCopyBuffer = weburl; EditorUtility.DisplayDialog("提示", "复制成功!", "OK"); } } GUILayout.EndHorizontal(); // GUILayout.Label("资源地址: "); GUILayout.BeginHorizontal(); { GUILayout.Label("项目根目录/DevOps/PublishAssets/" + PublishPipelineTools.UPLOAD_FOLDER_SUFFIX + "/*"); if (GUILayout.Button("打开", GUILayout.Width(40))) { var dir = BApplication.DevOpsPublishPackagePath + "/" + PublishPipelineTools.UPLOAD_FOLDER_SUFFIX; EditorUtility.RevealInFinder(dir); } } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); }
/// <summary> /// 最新包 /// </summary> void OnGUI_TestAssetBundle() { GUILayout.BeginVertical(); { GUILayout.Label("构建资源:", EditorGUIHelper.LabelH4); if (GUILayout.Button("收集Keyword[Shader Feature]", GUILayout.Width(200), GUILayout.Height(25))) { ShaderCollection.CollectShaderVariant(); } GUILayout.Space(5); //遍历支持平台 foreach (var platform in BApplication.SupportPlatform) { GUILayout.BeginHorizontal(); { GUILayout.Label(BApplication.GetPlatformPath(platform), GUILayout.Width(80)); GUILayout.Space(20); GUI.color = Color.green; if (GUILayout.Button("Build", GUILayout.Width(100))) { var ret = EditorUtility.DisplayDialog("提示", "是否要构建AssetBundle? \n平台:" + BApplication.GetPlatformPath(platform), "Ok", "Cancel"); if (ret) { //开始打包 BuildAssetBundle(BApplication.DevOpsPublishAssetsPath, platform); } } GUI.color = GUI.backgroundColor; } GUILayout.EndHorizontal(); } GUILayout.Space(10); //(); GUILayout.Label("资源验证:", EditorGUIHelper.LabelH4); //加载ab GUILayout.BeginHorizontal(); { GUILayout.Label("AssetBundle验证: 加载所有 (DevOps目录)", EditorGUIHelper.GetFontStyle(Color.white, 12)); if (GUILayout.Button("Play", GUILayout.Width(50), GUILayout.Height(20))) { AssetBundleEditorToolsV2CheckAssetbundle.TestLoadAssetbundleRuntime(); } } GUILayout.EndHorizontal(); GUILayout.Space(5); //(); //加载ab异步 GUILayout.BeginHorizontal(); { GUILayout.Label("AssetBundle验证: 加载所有-Async (DevOps目录)", EditorGUIHelper.GetFontStyle(Color.white, 12)); if (GUILayout.Button("Play", GUILayout.Width(50), GUILayout.Height(20))) { AssetBundleEditorToolsV2CheckAssetbundle.TestLoadAssetbundleRuntimeAsync(); } } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); }