private IEnumerator LoadAssetBundleAsyncFromeFile(LoadedAssetBundle assetBundle, string needLoadAssetName, Action <LoadedAssetBundle> loadedAssetBundleAction) { #if DEBUG Debug.Log(assetBundle.assetBundleName + " -- " + assetBundle.IsLoadedAll() + " --" + Time.frameCount); #endif yield return(new LoadedAssetBundleAsyncOperation(assetBundle, needLoadAssetName, null)); #if DEBUG Debug.Log(assetBundle.assetBundleName + " --loaded " + assetBundle.IsLoadedAll() + " --" + Time.frameCount); #endif if (!string.IsNullOrEmpty(needLoadAssetName)) { // Debug.Log(assetBundle.assetBundleName + " --needLoadAssetName " + assetBundle.IsLoadedAll() + " --" + Time.frameCount); Object loadAsset; if (!assetBundle.assetObjects.TryGetValue(needLoadAssetName, out loadAsset)) { var load = assetBundle.assetBundle.LoadAssetAsync(needLoadAssetName); yield return(load); //为什么要判断呢,是因为如果有同步加载的AssetBundle逻辑 if (!assetBundle.assetObjects.ContainsKey(needLoadAssetName)) { assetBundle.assetObjects.Add(needLoadAssetName, load.asset); } } //缓存以后的速度快好多了 } if (loadedAssetBundleAction != null) { loadedAssetBundleAction(assetBundle); } }
static int QPYX_IsLoadedAll_YXQP(IntPtr L_YXQP) { try { ToLua.CheckArgsCount(L_YXQP, 1); GameAsset.LoadedAssetBundle QPYX_obj_YXQP = (GameAsset.LoadedAssetBundle)ToLua.CheckObject <GameAsset.LoadedAssetBundle>(L_YXQP, 1); bool QPYX_o_YXQP = QPYX_obj_YXQP.IsLoadedAll(); LuaDLL.lua_pushboolean(L_YXQP, QPYX_o_YXQP); return(1); } catch (Exception e_YXQP) { return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP)); } }
static int IsLoadedAll(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); GameAsset.LoadedAssetBundle obj = (GameAsset.LoadedAssetBundle)ToLua.CheckObject <GameAsset.LoadedAssetBundle>(L, 1); bool o = obj.IsLoadedAll(); LuaDLL.lua_pushboolean(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }