Exemplo n.º 1
0
 public static void Release(LuaWindow window)
 {
     if (window != null && _pool.Count <= _maxNum)
     {
         _pool.Push(window);
     }
     else
     {
         window.Dispose();
     }
 }
Exemplo n.º 2
0
        //其他操作
        public void Dispose()
        {
            foreach (KeyValuePair <string, Object> pair in _persistantObjects)
            {
                if (pair.Value != null)
                {
                    if (pair.Value is GameObject)
                    {
                        UnityEngine.Object.DestroyImmediate(pair.Value, true);
                    }
                    else
                    {
                        Resources.UnloadAsset(pair.Value);
                    }
                }
            }

            _persistantObjects.Clear();

            foreach (var pair in _assetBundlesObj)
            {
                if (pair.Value != null)
                {
                    pair.Value.Unload(true);
                }
            }
            _assetBundlesObj.Clear();

            foreach (var pair in _cacheObjects)
            {
                if (pair.Value != null && pair.Value.obj != null)
                {
                    if (pair.Value.obj is GameObject)
                    {
                        UnityEngine.Object.DestroyImmediate(pair.Value.obj, true);
                    }
                    else
                    {
                        Resources.UnloadAsset(pair.Value.obj);
                    }
                }
            }
            _cacheObjects.Clear();

            LuaWindow.Destroy();
            Debug.Log("~ResourceManager was destroy!");
        }