IEnumerator OnLoadAsset(string abname, string assetName, LuaFunction func) { AssetBundleManifestOperation requestManifest = ResourceManager.Initialize(assetDir); if (requestManifest != null) { yield return(StartCoroutine(requestManifest)); } // Load asset from assetBundle. string abName = abname.ToLower() + assetExt; //LogUtil.Log(string.Format("LoadAssetBundle:{0}", abName)); AssetBundleAssetOperation request = ResourceManager.LoadAssetAsync(abName, assetName, typeof(UnityEngine.Object)); if (request == null) { yield break; } yield return(StartCoroutine(request)); // Get the asset. UnityEngine.Object prefab = request.GetAsset <UnityEngine.Object>(); if (func != null) { func.call(prefab); func.Dispose(); func = null; } }
// Load asset from the given assetBundle. static public AssetBundleAssetOperation LoadAssetAsync(string assetBundleName, string assetName, System.Type type) { AssetBundleAssetOperation operation = null; LoadAssetBundle(assetBundleName); operation = new AssetBundleLoadAssetOperation(assetBundleName, assetName, type); m_InProgressOperations.Add(operation); //添加进处理中列表,等Update处理 return(operation); }