private void Init() { oldGUIColor = GUI.color; if (!Directory.Exists(assetPath)) { Directory.CreateDirectory(assetPath); } settingData = ScriptableObjectUtils.LoadCreateScriptableObject <AssetBundleSettingData>(assetPath + settingDataPath); settingData.Init(); UpdateFileExtension(); UpdatePackageController.Init(); gameVersionInfo = UpdatePackageController.GetGameVersionInfo(PlayerSettings.productName); if (gameVersionInfo == null) { gameVersionInfo = new GameVersionInfo(); gameVersionInfo.forceUpdateVersion = PlayerSettings.bundleVersion; gameVersionInfo.latestVersion = PlayerSettings.bundleVersion; } versionControlInfo = UpdatePackageController.GetVersionControlInfo(PlayerSettings.productName, PlayerSettings.bundleVersion); if (versionControlInfo == null) { versionControlInfo = new VersionControlInfo(); } int num = GetMaxNumber(versionControlInfo.assetBundleVersions); if (num == -1) { assetBundleInfo = new AssetBundleInfo(); assetBundleInfo.gameName = PlayerSettings.productName; assetBundleInfo.gameVersion = PlayerSettings.bundleVersion; assetBundleInfo.assetBundleVersion = 0; } else { assetBundleInfo = UpdatePackageController.GetAssetBundleInfo(PlayerSettings.productName, PlayerSettings.bundleVersion, num); assetBundleInfo.assetBundleVersion = assetBundleInfo.assetBundleVersion + 1; } }
void BackUpAndUpdateGUI() { GUILayout.Space(7); GUILayout.Box("Game Version : " + PlayerSettings.bundleVersion); gameVersionInfo.latestVersion = EditorDrawGUIUtil.DrawBaseValue("最新版本:", gameVersionInfo.latestVersion).ToString(); gameVersionInfo.forceUpdateVersion = EditorDrawGUIUtil.DrawBaseValue("最小强制更新包版本:", gameVersionInfo.forceUpdateVersion).ToString(); versionControlInfo.assetBundleVersions.Sort(); GUILayout.Box("Assset Bundle Update Package :"); foreach (var item in versionControlInfo.assetBundleVersions) { GUILayout.BeginHorizontal("box"); GUILayout.Label(item.ToString()); if (GUILayout.Button("Delete", GUILayout.Width(60))) { if (EditorUtility.DisplayDialog("警告", "是否删除该更新版本?", "是", "取消")) { versionControlInfo.assetBundleVersions.Remove(item); return; } } GUILayout.EndHorizontal(); GUILayout.Space(4); } int num = GetMaxNumber(versionControlInfo.assetBundleVersions) + 1; GUILayout.Label("当前生成更新包版本 :" + num); GUILayout.FlexibleSpace(); if (GUILayout.Button("Create Package")) { if (num == 0) { versionControlInfo.assetBundleVersions.Add(num); } int res = 0; if (num != 0) { string md5Data = UpdatePackageController.GetPathMD5File(PlayerSettings.productName, PlayerSettings.bundleVersion, num - 1); string md5DataNew = FileUtils.LoadTextFileByPath(Application.streamingAssetsPath + "/" + UpdateAssetsConst.PathMD5FileName); res = CreateUpdatePack(md5Data, md5DataNew); Debug.Log("更新包包含更新文件个数 :" + res); } if (num == 0 || res > 0) { //GameVersionInfo FileUtils.CreateTextFile(UpdatePackageController.localDirPath + "/" + UpdateAssetsConst.GameVersionInfoFileName, JsonUtils.ClassOrStructToJson(gameVersionInfo)); UpdatePackageController.UpLoadFile(UpdatePackageController.localDirPath + "/" + UpdateAssetsConst.GameVersionInfoFileName, assetBundleInfo.gameName); //VersionControlInfo FileUtils.CreateTextFile(UpdatePackageController.localDirPath + "/" + UpdateAssetsConst.VersionControlInfoFileName, JsonUtils.ClassOrStructToJson(versionControlInfo)); string tempPath = assetBundleInfo.gameName + "/" + assetBundleInfo.gameVersion; UpdatePackageController.UpLoadFile(UpdatePackageController.localDirPath + "/" + UpdateAssetsConst.VersionControlInfoFileName, tempPath); //PathMD5File tempPath = assetBundleInfo.gameName + "/" + assetBundleInfo.gameVersion + "/" + assetBundleInfo.assetBundleVersion; UpdatePackageController.UpLoadFile(Application.streamingAssetsPath + "/" + UpdateAssetsConst.PathMD5FileName, tempPath); if (res > 0) { //update.zip UpdatePackageController.UpLoadFile(UpdatePackageController.localDirPath + "/" + UpdateAssetsConst.UpdatePackageFileName, tempPath); } } } GUILayout.Space(10); }