public void Start(string sPath, string sName, AsyncLoadAssetFinish pCallBack, bool bCache = false) { if (mLoading) { if (mAsset != null) { // 下一帧执行 回调 ResourceLoadManager.Instance.AddNextFrame(mAsset, pCallBack); } return; } mAssetBundleName = sPath.ToLower(); mAssetName = sName.ToLower();; mCache = bCache; mCallBack = pCallBack; mLoading = true; if (ResourceLoadManager.Instance.IsHaveCache(mAssetBundleName)) { ResourceLoadManager.Instance.AddNextFrameFromCache(mAssetBundleName, pCallBack); return; } #if ASYNC_LOAD mBundleLoader = ResourceLoadManager.Instance.Load(BundleName); mBundleLoader.AddRefCount(); ResourceLoadManager.Instance.AddResourceReq(this); #else SyncLoad(); #endif }
IEnumerator Load_AssetAsync(AssetBundle ab, string sAssetName, AsyncLoadAssetFinish pCallback) { AssetBundleRequest request = ab.LoadAssetAsync(sAssetName); yield return(request); pCallback(request.asset); }
public void AddNextFrameFromCache(string sName, AsyncLoadAssetFinish pCallBack) { UnityEngine.Object pAsset = null; if (mCacheList.TryGetValue(sName, out pAsset)) { AddNextFrame(pAsset, pCallBack); } }
public void Invoking() { if (mCallBack != null) { mCallBack(mAsset); } mCallBack = null; mAsset = null; }
public void OnStartLoadAsset(AssetBundle ab, string sAssetName, AsyncLoadAssetFinish callback) { StartCoroutine(Load_AssetAsync(ab, sAssetName, callback)); }
public void AddNextFrame(UnityEngine.Object pAsset, AsyncLoadAssetFinish pCallBack) { mNextFrameInvoking.Add(new AssetData(pAsset, pCallBack)); }
public AssetData(UnityEngine.Object pAsset, AsyncLoadAssetFinish pCallBack) { mAsset = pAsset; mCallBack = pCallBack; }