AssetBundles.AssetBundleManager.UnloadAssetBundle C# (CSharp) Method

UnloadAssetBundle() public static method

public static UnloadAssetBundle ( string assetBundleName ) : void
assetBundleName string
return void
        public static void UnloadAssetBundle(string assetBundleName)
        {
            #if UNITY_EDITOR
            // If we're in Editor simulation mode, we don't have to load the manifest assetBundle.
            if (SimulateAssetBundleInEditor)
                return;
            #endif

            //Debug.Log(m_LoadedAssetBundles.Count + " assetbundle(s) in memory before unloading " + assetBundleName);

            UnloadAssetBundleInternal(assetBundleName);
            UnloadDependencies(assetBundleName);

            //Debug.Log(m_LoadedAssetBundles.Count + " assetbundle(s) in memory after unloading " + assetBundleName);
        }

Usage Example

Exemplo n.º 1
0
		private static IEnumerator LoadAssetAsyncCallbackRoutine<T>(string assetBundleName, AssetBundleLoadAssetOperation request, Func<T, bool> onAssetLoaded) where T : UnityEngine.Object
		{
			yield return AssetBundleManager.m_Instance.StartCoroutine(request);
			if (AssetBundleManager.m_LoadedAssetBundles.ContainsKey(assetBundleName))
			{
				T asset = request.GetAsset<T>();
				if (onAssetLoaded == null || !onAssetLoaded(asset))
				{
					AssetBundleManager.UnloadAssetBundle(assetBundleName);
				}
			}
			else
			{
				onAssetLoaded((T)((object)null));
			}
			if (AssetBundleManager.m_PendingRoutines.ContainsKey(onAssetLoaded))
			{
				AssetBundleManager.m_PendingRoutines.Remove(onAssetLoaded);
			}
			yield break;
		}