예제 #1
0
        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);
            }
        }
예제 #2
0
 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));
     }
 }