Example #1
0
        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);
        }
Example #2
0
 public override IEnumerator PreLoadBundle_Coroutine(string strBundleName, delOnLoadBundle OnLoadBundle)
 {
     OnLoadBundle(strBundleName, true);
     yield break;
 }
Example #3
0
 public abstract IEnumerator PreLoadBundle_Coroutine(string strBundleName, delOnLoadBundle OnLoadBundle);
Example #4
0
 public Coroutine DoPreLoad_Bundle(string strBundleName, delOnLoadBundle OnLoadBundle)
 {
     return(StartCoroutine(_pLoadLogic.PreLoadBundle_Coroutine(strBundleName.ToLower(), OnLoadBundle)));
 }