public override IEnumerator PreLoadBundle_Coroutine(string strBundleName, delOnLoadBundle OnLoadBundle) { bool bLoaded = false; if (_mapLoadedBundle.ContainsKey(strBundleName)) { var pAsyncExist = _mapLoadedBundle[strBundleName].pAsyncOperation; if (pAsyncExist.isDone) { OnLoadBundle(strBundleName, true); yield break; } else { // yield return pAsyncExist; 다른 코루틴에서 yield 탄다고 에러 뱉음 while (pAsyncExist.isDone == false) { yield return(null); } bLoaded = true; } } if (bLoaded == false) { var pAsync = AssetBundle.LoadFromFileAsync(GetBundlePath(strBundleName)); BundleWrapper pBundleWrapper = new BundleWrapper(strBundleName, pAsync); _mapLoadedBundle.Add(strBundleName, pBundleWrapper); yield return(pAsync); pBundleWrapper.DoSetBundle(pAsync.assetBundle); } bool bResult = _mapLoadedBundle[strBundleName].pBundle != null; if (bResult == false) { Debug.LogError($"PreLoadbundle Fail - {strBundleName}"); } OnLoadBundle(strBundleName, bResult); }
public override IEnumerator PreLoadBundle_Coroutine(string strBundleName, delOnLoadBundle OnLoadBundle) { OnLoadBundle(strBundleName, true); yield break; }
public abstract IEnumerator PreLoadBundle_Coroutine(string strBundleName, delOnLoadBundle OnLoadBundle);
public Coroutine DoPreLoad_Bundle(string strBundleName, delOnLoadBundle OnLoadBundle) { return(StartCoroutine(_pLoadLogic.PreLoadBundle_Coroutine(strBundleName.ToLower(), OnLoadBundle))); }