Example #1
0
    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;
        }
    }
Example #2
0
    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);
    }