/// <summary> /// 检查资源是否可以更新 /// </summary> /// <param name="_isUpdate">0为不更新,1为更新</param> void CheckUpdateAssets(string _isUpdate) { isUpdate = _isUpdate != "0"; if (isUpdate) { // 版本需要做热更,请求资源服务器地址 string tempNetworkPath = VersionConst.ToServerPath(VersionConst.AssetsUrl); string tempPlatformNumber = GetFileNumber_String(VersionConst.OutPlatformNumberFile); StartCoroutine(LoadWWW(tempNetworkPath, "platformAssets", tempPlatformNumber, OnServerPath_Callback)); return; } // 版本不需要做热更,直接返回完成事件 Events.msInst.DispatchEvent(VersionEvent.DOWNLOAD_COMPLETION, null); }
/// <summary> /// 加载必要文件到本地目录 /// </summary> IEnumerator LoadAllFile() { if (!File.Exists(VersionConst.OutPlatformNumberFile)) { yield return(LoadFile(VersionConst.InPlatformNumberFile, VersionConst.OutPlatformNumberFile)); } if (!File.Exists(VersionConst.OutVersionNumberFile)) { yield return(LoadFile(VersionConst.InVersionNumberFile, VersionConst.OutVersionNumberFile)); } string tempNetworkPath = VersionConst.ToServerPath(VersionConst.UpdateAssets); string tempPlatformNumber = GetFileNumber_String(VersionConst.OutPlatformNumberFile); StartCoroutine(LoadWWW(tempNetworkPath, "platformNum", tempPlatformNumber, CheckUpdateAssets)); }
/// <summary> /// 解压初始文件 /// </summary> IEnumerator LoadVersionAssets() { if (!File.Exists(VersionConst.UnpackMarkPath)) { Directory.CreateDirectory(VersionConst.InUnpackDirectory); #if UNITY_IPHONE yield return(LoadDirectory(VersionConst.AppContentPath(), VersionConst.InUnpackDirectory + "/")); #else // UPK文件拷贝到相对路径 yield return(LoadFile(VersionConst.InUnpackFile, VersionConst.OutUnpackFile)); // 解压相对路径的UPK文件 yield return(UtilityUnpack.UnpackFolder(VersionConst.OutUnpackFile, VersionConst.InUnpackDirectory + "/")); #endif } // 解压文件成功,写入标示文件 // 防止UPK文件解压到一半,用户就退出游戏,导致文件解压不完整出现异常 File.WriteAllText(VersionConst.UnpackMarkPath, "2000"); // 资源解压完毕,开始加载本地的版本号 versionLib.SetVersionNumber(GetVersionNumber()); StartCoroutine(LoadWWW(NetworkPath + VersionConst.VersionFile + "?version=" + "&v=" + Random.Range(0f, 99999999f), OnVersionFileText_Callback)); }
private static void SaveReleasedVersionFile(AppVersion appVersion, string savedPath) { DoSaveVersionFile(appVersion, savedPath); AssetDatabase.Refresh(); VersionConst.RefleshVerionInfo(); }