public void Copy(PublishPlatformCollection other) { foreach (var obj in other.plats) { PublishPlatformSet info = new PublishPlatformSet(); info.Copy(obj); plats.Add(info); } }
public void Copy(PublishPlatformSet other) { type = other.type; name = other.name; foreach (var obj in other.list) { PublishPlatformInfo info = new PublishPlatformInfo(); info.Copy(obj); list.Add(info); } }
/// <summary> /// 发布一个 /// </summary> private static void BuildOne(string publish_path, ePublishPlatformType target, PublishPlatformSet platform_config, PublishPlatformInfo platform_info, PublishCacheChannelInfo cache_channel_info, PublishCachePlatformInfo cache_platform_info) { Log.Info("正在发布版本:" + platform_info.PackageName); BuildTarget build_target = GetBuildTargetByType(target); BuildTargetGroup target_group = GetTargetGroupByType(target); string[] scenes = FindEnabledEditorScenes(); //设置发布选项 BulidTarget(target, platform_info, cache_channel_info, cache_platform_info); //发布 EditorUserBuildSettings.SwitchActiveBuildTarget(target_group, build_target); BuildPipeline.BuildPlayer(scenes, GetSavePath(publish_path, target, platform_info.PackageName), build_target, BuildOptions.None); Log.Info("发布完成一个:" + platform_info.PackageName); }
/// <summary> /// 遍历所有需要发布的平台 /// </summary> /// <param name="scenes"></param> /// <param name="target_dir"></param> /// <param name="build_target"></param> /// <param name="build_options"></param> private static void PublishAll(string publish_path, ePublishPlatformType target, PublishPlatformSet platform_config, PublishCachePlatformInfo cache_platform_info) { string publish_packet = ""; PublishPlatformInfo platform_info; PublishCacheChannelInfo cache_channel_info; for (int i = 0; i < platform_config.list.Count; ++i) { platform_info = platform_config.list[i]; cache_channel_info = PublishManager.Instance.GetCachaChannelConfig(platform_info.Name); if (cache_channel_info.IsBuild) { BuildOne(publish_path, target, platform_config, platform_info, cache_channel_info, cache_platform_info); publish_packet += platform_info.PackageName + "\n"; } } EditorUtility.DisplayDialog("提示", "发布完成,以下是发布的版本:\n" + publish_packet, "确定"); }
public void Setup(ePublishPlatformType type) { Log.Debug("[publish]打包平台:" + PublishUtils.GetPlatformNameByType(type)); m_PlatformType = type; m_CachePlatformInfo = PublishManager.Instance.GetCachaPlatformConfig(type); if (m_CachePlatformInfo == null) { Log.Error("[publish]平台缓存读取错误:" + type); Close(); return; } m_PlatformConfig = PublishManager.Instance.GetPlatformConfig(type); if (m_PlatformConfig == null) { Log.Error("[publish]平台配置表信息读取错误:" + type); Close(); return; } m_PublishPath = PublishUtils.GetPublishPath(m_PlatformType); }
/// <summary> /// 发布 /// </summary> public static void StartPublish(string publish_path, ePublishPlatformType target, PublishPlatformSet platform_config, PublishCachePlatformInfo cache_platform_info) { //1.有效性校验 //判断是否有勾选发布平台 bool has_select_build = false; PublishPlatformInfo platform_info; PublishCacheChannelInfo cache_channel_info; for (int i = 0; i < platform_config.list.Count; ++i) { platform_info = platform_config.list[i]; cache_channel_info = PublishManager.Instance.GetCachaChannelConfig(platform_info.Name); if (cache_channel_info.IsBuild) { has_select_build = true; break; } } if (!has_select_build) { EditorUtility.DisplayDialog("错误", "没有选择需要发布的版本", "确定"); return; } //发布路径 if (string.IsNullOrEmpty(publish_path)) { EditorUtility.DisplayDialog("错误", "发布路径错误", "确定"); return; } ///2.发布 PublishAll(publish_path, target, platform_config, cache_platform_info); ///3.发布完成 PublishManager.Instance.OnPublishComplete(); }