private void OnCheckerResourceCheckComplete(int removedCount, int updateCount, long updateTotalLength, long updateTotalZipLength) { m_VersionListProcessor.VersionListUpdateSuccess -= OnVersionListProcessorUpdateSuccess; m_VersionListProcessor.VersionListUpdateFailure -= OnVersionListProcessorUpdateFailure; m_VersionListProcessor.Shutdown(); m_VersionListProcessor = null; m_UpdateVersionListCallbacks = null; m_ResourceChecker.ResourceNeedUpdate -= OnCheckerResourceNeedUpdate; m_ResourceChecker.ResourceCheckComplete -= OnCheckerResourceCheckComplete; m_ResourceChecker.Shutdown(); m_ResourceChecker = null; m_ResourceUpdater.CheckResourceComplete(removedCount > 0); if (updateCount <= 0) { m_ResourceUpdater.ResourceUpdateStart -= OnUpdaterResourceUpdateStart; m_ResourceUpdater.ResourceUpdateChanged -= OnUpdaterResourceUpdateChanged; m_ResourceUpdater.ResourceUpdateSuccess -= OnUpdaterResourceUpdateSuccess; m_ResourceUpdater.ResourceUpdateFailure -= OnUpdaterResourceUpdateFailure; m_ResourceUpdater.ResourceUpdateAllComplete -= OnUpdaterResourceUpdateAllComplete; m_ResourceUpdater.Shutdown(); m_ResourceUpdater = null; m_UpdateFileCache = null; if (m_DecompressCache != null) { m_DecompressCache.Dispose(); m_DecompressCache = null; } } CheckResourcesCompleteCallback(updateCount > 0, removedCount, updateCount, updateTotalLength, updateTotalZipLength); CheckResourcesCompleteCallback = null; }
/// <summary> /// 使用可更新模式并更新版本资源列表 /// </summary> /// <param name="versionListLength">版本资源列表大小</param> /// <param name="versionListHashCode">版本资源列表哈希值</param> /// <param name="versionListZipLength">版本资源列表压缩后大小</param> /// <param name="versionListZipHashCode">版本资源列表压缩后哈希值</param> /// <param name="updateVersionListCallbacks">版本资源列表更新回调函数集</param> public void UpdateVersionList(int versionListLength, int versionListHashCode, int versionListZipLength, int versionListZipHashCode, UpdateVersionListCallbacks updateVersionListCallbacks) { if (updateVersionListCallbacks == null) { throw new Exception("Update version list callbacks is invalid."); } if (m_ResourceMode == ResourceMode.Unspecified) { throw new Exception("You must set resource mode first."); } if (m_ResourceMode != ResourceMode.Updatable) { throw new Exception("You can not use UpdateVersionList without updatable resource mode."); } if (m_VersionListProcessor == null) { throw new Exception("You can not use UpdateVersionList at this time."); } m_UpdateVersionListCallbacks = updateVersionListCallbacks; m_VersionListProcessor.UpdateVersionList(versionListLength, versionListHashCode, versionListZipLength, versionListZipHashCode); }
/// <summary> /// 使用可更新模式并更新版本资源列表 /// </summary> /// <param name="versionListLength">版本资源列表大小</param> /// <param name="versionListHashCode">版本资源列表哈希值</param> /// <param name="versionListZipLength">版本资源列表压缩后大小</param> /// <param name="versionListZipHashCode">版本资源列表压缩后哈希值</param> /// <param name="updateVersionListCallbacks">版本资源列表更新回调函数集</param> public void UpdateVersionList(int versionListLength, int versionListHashCode, int versionListZipLength, int versionListZipHashCode, UpdateVersionListCallbacks updateVersionListCallbacks) { m_ResourceManager.UpdateVersionList(versionListLength, versionListHashCode, versionListZipLength, versionListZipHashCode, updateVersionListCallbacks); }