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; }
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; }
internal override void Load() { bundle = Assets.LoadBundle(assetBundleName); var assetName = Path.GetFileName(url); asset = bundle.assetBundle.LoadAsset(assetName, assetType); }
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; } } }
internal override void Unload() { if (_request != null) { _request.Release(); _request = null; } }
internal override void Unload() { if (request != null) { request.Release(); request = null; } loadState = LoadState.Unload; }
internal override void Unload() { if (bundle != null) { bundle.Release(); bundle = null; } asset = null; }
bool OnError(BundleRequest bundle) { error = bundle.error; if (!string.IsNullOrEmpty(error)) { loadState = LoadState.Loaded; return(true); } return(false); }
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(); }
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(); }
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(); }
internal override void Unload() { if (bundle != null) bundle.Release(); if (loadSceneMode == LoadSceneMode.Additive) { if (SceneManager.GetSceneByName(sceneName).isLoaded) SceneManager.UnloadSceneAsync(sceneName); } bundle = null; }
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; }
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)); } }
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; } }
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)); } }
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)); } }
internal override void Load() { if (!string.IsNullOrEmpty(assetBundleName)) { bundle = Assets.LoadBundle(assetBundleName); if (bundle != null) { SceneManager.LoadScene(sceneName, loadSceneMode); } } else { SceneManager.LoadScene(sceneName, loadSceneMode); } }
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; } }
/// <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)); } }
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); } }
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); } }
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")); } }
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; }
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")); } }
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")); } }
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; }
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")); } }
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"; } }
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; }