UnloadDependencies() protected static method

protected static UnloadDependencies ( string assetBundleName ) : void
assetBundleName string
return void
コード例 #1
0
		protected static void UnloadAssetBundleInternal(string assetBundleName)
		{
			string text;
			LoadedAssetBundle loadedAssetBundle = AssetBundleManager.GetLoadedAssetBundle(assetBundleName, out text);
			if (loadedAssetBundle == null)
			{
				return;
			}
			if (--loadedAssetBundle.m_ReferencedCount == 0)
			{
				AssetBundleManager.m_LoadedAssetBundles.Remove(assetBundleName);
				if (!AssetBundleManager.m_ToUnloadAssetBundles.ContainsKey(assetBundleName))
				{
					AssetBundleManager.m_ToUnloadAssetBundles.Add(assetBundleName, loadedAssetBundle);
				}
				AssetBundleManager.UnloadDependencies(assetBundleName);
			}
		}
コード例 #2
0
ファイル: AssetBundleManager.cs プロジェクト: K07H/The-Forest
        private void Update()
        {
            this.keysToRemove.Clear();
            foreach (KeyValuePair <string, LoadedAssetBundle> keyValuePair in AssetBundleManager.m_ToUnloadAssetBundles)
            {
                if (keyValuePair.Value != null && ++keyValuePair.Value.m_UnloadTicks >= 60)
                {
                    keyValuePair.Value.m_AssetBundle.Unload(true);
                    this.keysToRemove.Add(keyValuePair.Key);
                }
            }
            for (int i = 0; i < this.keysToRemove.Count; i++)
            {
                string key = this.keysToRemove[i];
                AssetBundleManager.m_ToUnloadAssetBundles.Remove(key);
            }
            this.keysToRemove.Clear();
            foreach (KeyValuePair <string, AssetBundleCreateRequest> keyValuePair2 in AssetBundleManager.m_DownloadingReqs)
            {
                AssetBundleCreateRequest value = keyValuePair2.Value;
                if (value.isDone)
                {
                    AssetBundle assetBundle = value.assetBundle;
                    if (assetBundle == null)
                    {
                        if (!AssetBundleManager.m_DownloadingErrors.ContainsKey(keyValuePair2.Key))
                        {
                            AssetBundleManager.m_DownloadingErrors.Add(keyValuePair2.Key, string.Format("{0} is not a valid asset bundle.", keyValuePair2.Key));
                        }
                        this.keysToRemove.Add(keyValuePair2.Key);
                    }
                    else
                    {
                        int num = AssetBundleManager.m_DownloadingTicks[keyValuePair2.Key];
                        if (num > 0)
                        {
                            AssetBundleManager.m_LoadedAssetBundles.Add(keyValuePair2.Key, new LoadedAssetBundle(assetBundle, num));
                        }
                        else
                        {
                            assetBundle.Unload(true);
                            AssetBundleManager.UnloadDependencies(keyValuePair2.Key);
                            for (int j = AssetBundleManager.m_InProgressOperations.Count - 1; j >= 0; j--)
                            {
                                if (AssetBundleManager.m_InProgressOperations[j].MatchBundle(keyValuePair2.Key))
                                {
                                    AssetBundleManager.m_InProgressOperations[j].Abort();
                                    AssetBundleManager.m_InProgressOperations.RemoveAt(j);
                                }
                            }
                        }
                        this.keysToRemove.Add(keyValuePair2.Key);
                    }
                }
            }
            foreach (string key2 in this.keysToRemove)
            {
                AssetBundleManager.m_DownloadingReqs.Remove(key2);
                AssetBundleManager.m_DownloadingTicks.Remove(key2);
            }
            int k = 0;

            while (k < AssetBundleManager.m_InProgressOperations.Count)
            {
                if (!AssetBundleManager.m_InProgressOperations[k].Update())
                {
                    AssetBundleManager.m_InProgressOperations.RemoveAt(k);
                }
                else
                {
                    k++;
                }
            }
        }