AssetBundleManagerのwwwをUnityWebRequestに変えて、さらにキャッシュの古いバージョンを削除してみる

#環境
Unity2017.1.0f3

#概要
wwwは使用しないでUnityWebRequestを使用したほうがいいらしいのでテスト
また、Caching.ClearOtherCachedVersionsを使用して、キャッシュの古いバージョンを削除します

#変更箇所

~~~c#
		// Where we actuall call WWW to download the assetBundle.
		static protected bool LoadAssetBundleInternal (string assetBundleName, bool isLoadingAssetBundleManifest)
		{
			// Already loaded.
			LoadedAssetBundle bundle = null;
			m_LoadedAssetBundles.TryGetValue(assetBundleName, out bundle);
			if (bundle != null)
			{
				bundle.m_ReferencedCount++;
				return true;
			}
	
			// @TODO: Do we need to consider the referenced count of WWWs?
			// In the demo, we never have duplicate WWWs as we wait LoadAssetAsync()/LoadLevelAsync() to be finished before calling another LoadAssetAsync()/LoadLevelAsync().
			// But in the real case, users can call LoadAssetAsync()/LoadLevelAsync() several times then wait them to be finished which might have duplicate WWWs.
			if (m_DownloadingWWWs.ContainsKey(assetBundleName) )
				return true;
	
		//	WWW download = null;
			UnityWebRequest download = null;
			string url = m_BaseDownloadingURL + assetBundleName;
		
			// For manifest assetbundle, always download it as we don't have hash for it.
			if (isLoadingAssetBundleManifest)
			//	download = new WWW(url);
				download = UnityWebRequest.GetAssetBundle( url );
			else
			{
				download = UnityWebRequest.GetAssetBundle( url, m_AssetBundleManifest.GetAssetBundleHash(assetBundleName), 0 );
				//Unity2017 バージョン違いを消す
				if( Caching.ClearOtherCachedVersions( assetBundleName, m_AssetBundleManifest.GetAssetBundleHash(assetBundleName ) ) == false )
					Debug.LogWarning( "ClearOtherCachedVersions" );
			}
			//	download = WWW.LoadFromCacheOrDownload(url, m_AssetBundleManifest.GetAssetBundleHash(assetBundleName), 0); 
			download.Send();
			m_DownloadingWWWs.Add(assetBundleName, download);
	
			return false;
		}
~~~

~~~c#	
		void Update()
		{
			// Collect all the finished WWWs.
			var keysToRemove = new List<string>();
			foreach (var keyValue in m_DownloadingWWWs)
			{
			//	WWW download = keyValue.Value;
				var download = keyValue.Value;
	
				// If downloading fails.
				if (download.error != null)
				{
					m_DownloadingErrors.Add(keyValue.Key, string.Format("Failed downloading bundle {0} from {1}: {2}", keyValue.Key, download.url, download.error));
					keysToRemove.Add(keyValue.Key);
					continue;
				}
	
				// If downloading succeeds.
				if(download.isDone)
				{
				//	AssetBundle bundle = download.assetBundle;
					AssetBundle bundle = ((DownloadHandlerAssetBundle)download.downloadHandler).assetBundle;
					if (bundle == null)
					{
						m_DownloadingErrors.Add(keyValue.Key, string.Format("{0} is not a valid asset bundle.", keyValue.Key));
						keysToRemove.Add(keyValue.Key);
						continue;
					}
				
					//Debug.Log("Downloading " + keyValue.Key + " is done at frame " + Time.frameCount);
				//	m_LoadedAssetBundles.Add(keyValue.Key, new LoadedAssetBundle( download.assetBundle ) );
					m_LoadedAssetBundles.Add(keyValue.Key, new LoadedAssetBundle( bundle ) );
					keysToRemove.Add(keyValue.Key);

					//Unity2017キャッシュの確認
					var currentCache = Caching.currentCacheForWriting;
					var versions = new List<Hash128>();
					var assetbundleName = Path.GetFileName( download.url );
					Caching.GetCachedVersions( assetbundleName, versions );
					Debug.Log( "CacheVersionCount:" + bundle.name + ":" + versions.Count );
					Debug.Log( "CachePath:" + currentCache.path );
					Debug.Log( "CacheSize:" + currentCache.spaceOccupied + "/" + currentCache.maximumAvailableStorageSpace );
				}
			}
	
			// Remove the finished WWWs.
			foreach( var key in keysToRemove)
			{
			//	WWW download = m_DownloadingWWWs[key];
				var download = m_DownloadingWWWs[key];
				m_DownloadingWWWs.Remove(key);
				download.Dispose();
			}
	
			// Update all in progress operations
			for (int i=0;i<m_InProgressOperations.Count;)
			{
				if (!m_InProgressOperations[i].Update())
				{
					m_InProgressOperations.RemoveAt(i);
				}
				else
					i++;
			}
		}
~~~