Exemplo n.º 1
0
        internal override void Unload()
        {
            if (BundleRequest != null)
            {
                BundleRequest.Release();
            }

            if (children.Count > 0)
            {
                foreach (var item in children)
                {
                    item.Release();
                }
                children.Clear();
            }

            if (loadSceneMode == LoadSceneMode.Additive)
            {
                if (SceneManager.GetSceneByName(sceneName).isLoaded)
                {
                    SceneManager.UnloadSceneAsync(sceneName);
                }
            }

            BundleRequest = null;
            loadState     = LoadState.Unload;
        }
Exemplo n.º 2
0
 internal override void Load()
 {
     if (!string.IsNullOrEmpty(assetBundleName))
     {
         bundle = Assets.LoadBundle(assetBundleName);
         if (bundle != null)
         {
             var bundles = Assets.GetChildren(assetBundleName);
             foreach (var item in bundles)
             {
                 children.Add(Assets.LoadBundle(item));
             }
             SceneManager.LoadScene(sceneName, loadSceneMode);
         }
     }
     else
     {
         try
         {
             SceneManager.LoadScene(sceneName, loadSceneMode);
             loadState = LoadState.Loading;
         }
         catch (Exception e)
         {
             Debug.LogException(e);
             error = e.ToString();
         }
     }
     loadState = LoadState.Loaded;
 }
Exemplo n.º 3
0
        internal override void Load()
        {
            bundle = Assets.LoadBundle(assetBundleName);
            var assetName = Path.GetFileName(url);

            asset = bundle.assetBundle.LoadAsset(assetName, assetType);
        }
Exemplo n.º 4
0
 internal override void Load()
 {
     if (!string.IsNullOrEmpty(assetBundleName))
     {
         bundle = Assets.LoadBundle(assetBundleName);
         if (bundle != null)
         {
             SceneManager.LoadScene(sceneName, loadSceneMode);
         }
     }
     else
     {
         try
         {
             SceneManager.LoadScene(sceneName, loadSceneMode);
             loadState = LoadState.LoadAsset;
         }
         catch (Exception e)
         {
             Debug.LogException(e);
             error     = e.ToString();
             loadState = LoadState.Loaded;
         }
     }
 }
Exemplo n.º 5
0
 internal override void Unload()
 {
     if (_request != null)
     {
         _request.Release();
         _request = null;
     }
 }
Exemplo n.º 6
0
 internal override void Unload()
 {
     if (request != null)
     {
         request.Release();
         request = null;
     }
     loadState = LoadState.Unload;
 }
Exemplo n.º 7
0
        internal override void Unload()
        {
            if (bundle != null)
            {
                bundle.Release();
                bundle = null;
            }

            asset = null;
        }
Exemplo n.º 8
0
 bool OnError(BundleRequest bundle)
 {
     error = bundle.error;
     if (!string.IsNullOrEmpty(error))
     {
         loadState = LoadState.Loaded;
         return(true);
     }
     return(false);
 }
Exemplo n.º 9
0
        private static void UnloadChildren(BundleRequest bundle)
        {
            for (var i = 0; i < bundle.children.Count; i++)
            {
                var item = bundle.children[i];
                item.Release();
            }

            bundle.children.Clear();
        }
Exemplo n.º 10
0
        private static void UnloadDependencies(BundleRequest bundle)
        {
            for (var i = 0; i < bundle.dependencies.Count; i++)
            {
                var item = bundle.dependencies[i];
                item.Release();
            }

            bundle.dependencies.Clear();
        }
Exemplo n.º 11
0
        internal static void UpdateBundles()
        {
            if (MAX_BUNDLE_LOAD_SIZE_PERFREME > 0)
            {
                if (_bundles2Load.Count > 0 && _bundlesByLoading.Count < MAX_BUNDLE_LOAD_SIZE_PERFREME)
                {
                    for (int i = 0; i < Math.Min(MAX_BUNDLE_LOAD_SIZE_PERFREME - _bundlesByLoading.Count, _bundles2Load.Count); ++i)
                    {
                        var item = _bundles2Load[i];
                        if (item.loadState == LoadState.Init)
                        {
                            item.Load();
                            _bundlesByLoading.Add(item);
                            _bundles2Load.RemoveAt(i);
                            --i;
                        }
                    }
                }

                for (int i = 0; i < _bundlesByLoading.Count; ++i)
                {
                    var item = _bundlesByLoading[i];
                    if (item.loadState == LoadState.Loaded || item.loadState == LoadState.Unload)
                    {
                        _bundlesByLoading.RemoveAt(i);
                        --i;
                    }
                }
            }

            for (int i = 0; i < _bundleRequests.Count; i++)
            {
                BundleRequest item = _bundleRequests[i];
                if (item.Update() || !item.IsUnused())
                {
                    continue;
                }
                _unusedBundles.Add(item);
                _bundleRequests.RemoveAt(i);
                --i;
            }

            for (var i = 0; i < _unusedBundles.Count; i++)
            {
                var item = _unusedBundles[i];
                _bundles.Remove(item.url);
                UnloadDependencies(item);
                item.Unload();
                Log("UnloadBundle: " + item.url);
            }

            _unusedBundles.Clear();
        }
Exemplo n.º 12
0
        internal override void Unload()
        {
            if (bundle != null)
                bundle.Release();

            if (loadSceneMode == LoadSceneMode.Additive)
            {
                if (SceneManager.GetSceneByName(sceneName).isLoaded)
                    SceneManager.UnloadSceneAsync(sceneName);
            }

            bundle = null;
        }
Exemplo n.º 13
0
        internal override void Load()
        {
            bundle = Assets.LoadBundle(assetBundleName);
            var bundles = Assets.GetChildren(assetBundleName);

            foreach (var item in bundles)
            {
                children.Add(Assets.LoadBundle(item));
            }
            //var assetName = Path.GetFileName(url);
            asset     = bundle.assetBundle.LoadAsset(url, assetType);
            loadState = LoadState.Loaded;
        }
Exemplo n.º 14
0
 static int Release(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         libx.BundleRequest obj = (libx.BundleRequest)ToLua.CheckObject <libx.BundleRequest>(L, 1);
         obj.Release();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Exemplo n.º 15
0
 internal override void Load()
 {
     assetName = Path.GetFileName(name);
     if (Assets.runtimeMode)
     {
         var assetBundleName = assetName.Replace(".asset", ".unity3d").ToLower();
         request   = Assets.LoadBundleAsync(assetBundleName);
         loadState = LoadState.LoadAssetBundle;
     }
     else
     {
         loadState = LoadState.Loaded;
     }
 }
Exemplo n.º 16
0
        private static void LoadChildren(BundleRequest bundle, string assetBundleName, bool asyncRequest)
        {
            var dependencies = GetChildren(assetBundleName);

            if (dependencies.Length <= 0)
            {
                return;
            }
            for (var i = 0; i < dependencies.Length; i++)
            {
                var item = dependencies[i];
                bundle.children.Add(LoadBundle(item, asyncRequest));
            }
        }
Exemplo n.º 17
0
        internal static void LoadDependencies(BundleRequest bundle, string assetBundleName, bool asyncRequest)
        {
            var dependencies = bundleManifest.GetAllDependencies(assetBundleName);

            if (dependencies.Length <= 0)
            {
                return;
            }
            for (var i = 0; i < dependencies.Length; i++)
            {
                var item = dependencies[i];
                bundle.dependencies.Add(LoadBundle(item, false, asyncRequest));
            }
        }
Exemplo n.º 18
0
 internal override void Load()
 {
     if (!string.IsNullOrEmpty(assetBundleName))
     {
         bundle = Assets.LoadBundle(assetBundleName);
         if (bundle != null)
         {
             SceneManager.LoadScene(sceneName, loadSceneMode);
         }
     }
     else
     {
         SceneManager.LoadScene(sceneName, loadSceneMode);
     }
 }
Exemplo n.º 19
0
 internal override void Load()
 {
     _assetName = Path.GetFileName(url);
     if (Assets.runtimeMode)
     {
         var assetBundleName = _assetName.Replace(".asset", ".unity3d").ToLower();
         _request           = Assets.LoadBundle(assetBundleName, true);
         _request.completed = Request_completed;
         loadState          = LoadState.LoadAssetBundle;
     }
     else
     {
         loadState = LoadState.Loaded;
     }
 }
Exemplo n.º 20
0
        /// <summary>
        /// 加载依赖资源
        /// </summary>
        /// <param name="bundle"></param>
        /// <param name="assetBundleName"></param>
        /// <param name="asyncRequest"></param>
        private static void LoadDependencies(BundleRequest bundle, string assetBundleName, bool asyncRequest)
        {
            //1.获取所有依赖资源
            var dependencies = GetAllDependencies(assetBundleName);

            if (dependencies.Length <= 0)
            {
                return;
            }
            for (var i = 0; i < dependencies.Length; i++)
            {
                var item = dependencies[i];
                bundle.dependencies.Add(LoadBundle(item, asyncRequest));
            }
        }
Exemplo n.º 21
0
 void ReleaseByBundle(BundleRequest bundle)
 {
     if (bundle.name.Equals(name))
     {
         base.Release();
         return;
     }
     if (_parents.Contains(bundle))
     {
         return;
     }
     _parents.Add(bundle);
     foreach (var child in bundle.children)
     {
         ReleaseByBundle(child);
     }
 }
Exemplo n.º 22
0
 void ReleaseByBundle(BundleRequest bundle)
 {
     if (bundle.url.Equals(url))
     {
         base.Release();
         return;
     }
     if (_parents.Contains(bundle))
     {
         return;
     }
     _parents.Add(bundle);
     foreach (var child in bundle.dependencies)
     {
         ReleaseByBundle(child);
     }
 }
Exemplo n.º 23
0
    static int get_children(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            libx.BundleRequest obj = (libx.BundleRequest)o;
            System.Collections.Generic.List <libx.BundleRequest> ret = obj.children;
            ToLua.PushSealed(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index children on a nil value"));
        }
    }
Exemplo n.º 24
0
        internal override void Unload()
        {
            if (bundle != null)
            {
                bundle.Release();
                bundle = null;
            }

            foreach (var item in children)
            {
                item.Release();
            }

            children.Clear();
            asset     = null;
            loadState = LoadState.Unload;
        }
Exemplo n.º 25
0
    static int set_parent(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            libx.BundleRequest obj  = (libx.BundleRequest)o;
            string             arg0 = ToLua.CheckString(L, 2);
            obj.parent = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index parent on a nil value"));
        }
    }
Exemplo n.º 26
0
    static int get_parent(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            libx.BundleRequest obj = (libx.BundleRequest)o;
            string             ret = obj.parent;
            LuaDLL.lua_pushstring(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index parent on a nil value"));
        }
    }
Exemplo n.º 27
0
 internal override void Unload()
 {
     if (BundleRequest != null)
     {
         BundleRequest.Release();
         BundleRequest = null;
     }
     if (children.Count > 0)
     {
         foreach (var item in children)
         {
             item.Release();
         }
         children.Clear();
     }
     asset = null;
 }
Exemplo n.º 28
0
    static int get_assetBundle(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            libx.BundleRequest      obj = (libx.BundleRequest)o;
            UnityEngine.AssetBundle ret = obj.assetBundle;
            ToLua.Push(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index assetBundle on a nil value"));
        }
    }
Exemplo n.º 29
0
 internal override void LoadImmediate()
 {
     BundleRequest.LoadImmediate();
     foreach (var item in children)
     {
         item.LoadImmediate();
     }
     if (BundleRequest.assetBundle != null)
     {
         var assetName = Path.GetFileName(name);
         asset = BundleRequest.assetBundle.LoadAsset(assetName, assetType);
     }
     loadState = LoadState.Loaded;
     if (asset == null)
     {
         error = "asset == null";
     }
 }
Exemplo n.º 30
0
 internal override void Load()
 {
     if (!string.IsNullOrEmpty(assetBundleName))
     {
         BundleRequest = Assets.LoadBundle(assetBundleName);
         if (BundleRequest != null)
         {
             var bundles = Assets.GetAllDependencies(assetBundleName);
             foreach (var item in bundles)
             {
                 children.Add(Assets.LoadBundle(item));
             }
             SceneManager.LoadScene(sceneName, loadSceneMode);
         }
     }
     else
     {
         SceneManager.LoadScene(sceneName, loadSceneMode);
     }
     loadState = LoadState.Loaded;
 }