예제 #1
0
 /// <summary>
 /// 资源回收(卸载引用计数为零的资源)
 /// </summary>
 public static void UnloadUnusedAssets()
 {
     if (_isInitialize)
     {
         AssetSystem.Update();
         AssetSystem.UnloadUnusedAssets();
     }
 }
예제 #2
0
        internal static void UnloadSubScene(ProviderBase provider)
        {
            string providerGUID = provider.MainAssetInfo.ProviderGUID;

            if (_sceneHandles.ContainsKey(providerGUID) == false)
            {
                throw new Exception("Should never get here !");
            }

            // 释放子场景句柄
            _sceneHandles[providerGUID].ReleaseInternal();
            _sceneHandles.Remove(providerGUID);

            // 卸载未被使用的资源(包括场景)
            AssetSystem.UnloadUnusedAssets();

            // 检验子场景是否销毁
            if (provider.IsDestroyed == false)
            {
                throw new Exception("Should never get here !");
            }
        }
예제 #3
0
        internal static void UnloadAllScene()
        {
            // 释放所有场景句柄
            foreach (var valuePair in _sceneHandles)
            {
                valuePair.Value.ReleaseInternal();
            }
            _sceneHandles.Clear();

            // 卸载未被使用的资源(包括场景)
            AssetSystem.UnloadUnusedAssets();

            // 检验所有场景是否销毁
            foreach (var provider in _providers)
            {
                if (provider.IsSceneProvider())
                {
                    if (provider.IsDestroyed == false)
                    {
                        throw new Exception("Should never get here !");
                    }
                }
            }
        }