/// <summary> /// 以客户端安装包默认的资源版本配置为基准创建一个新的本地缓存 /// </summary> /// <param name="remoteVersions"></param> public void CreateVersionsCached(ref ResDataVersion remoteVersions) { string path = AppPaths.PersistentResDataRoot.Append(ResDataVersion.FILE_RES_DATA_VERSIONS_NAME); string data = FileOperater.ReadUTF8Text(path); ResDataVersion temp = JsonUtility.FromJson <ResDataVersion>(data); if (temp == default || temp.IsVersionsEmpty()) { #if LOG_CLIENT_VERSIONING "log".Log("Verision data is empty, will create new one."); #endif temp = new ResDataVersion { res_gateway = remoteVersions.res_gateway, app_version = remoteVersions.app_version, res_version = remoteVersions.res_version }; ResDataVersion client = Versions; temp.CloneVersionsFrom(ref client); } else { } CachedVersion = temp; CachedVersion.resVersionType = ResDataVersionType.Cached; }
/// <summary> /// 从另一个资源版本对象复制数据 /// </summary> /// <param name="copyFrom"></param> public void CloneVersionsFrom(ref ResDataVersion copyFrom) { Clean(false, true); if (copyFrom.IsVersionsEmpty()) { copyFrom.Init(); } else { } app_version = copyFrom.app_version; res_version = copyFrom.res_version; res_gateway = copyFrom.res_gateway; ResVersion item; int resSize = copyFrom.res.Length; res = new ResVersion[resSize]; for (int i = 0; i < resSize; i++) { item = copyFrom.res[i]; res[i] = ResVersion.CreateNew(item.name, item.version, item.file_size); } int updatingsSize = copyFrom.updatings != default ? copyFrom.updatings.Length : 0; updatings = new ResUpdating[updatingsSize]; for (int i = 0; i < updatingsSize; i++) { updatings[i] = new ResUpdating() { name = copyFrom.updatings[i].name, version = copyFrom.updatings[i].version, }; } res_total = res.Length; updating_total = updatings.Length; }