private IEnumerator IeLoadAsset(string resName, LoadderCallBack callBack, LoadderData data) { var boudleName = data == null ? resName : string.IsNullOrEmpty(data.assetBoudleName) ? resName : data.assetBoudleName; if (_objDic.ContainsKey(boudleName)) { var resNames = resName.Split('/'); if (callBack != null) { callBack(resName, _objDic[boudleName].LoadAsset(resNames[resNames.Length - 1]), data); } yield break; } resManagerState = ResManagerState.EAsyncLoadRes; if (_wwwList.Contains(boudleName)) { yield return(new WaitWhile(() => _wwwList.Contains(boudleName))); if (_objDic.ContainsKey(boudleName)) { var resNames = resName.Split('/'); if (callBack != null) { callBack(resName, _objDic[boudleName].LoadAsset(resNames[resNames.Length - 1]), data); } resManagerState = ResManagerState.EFree; yield break; } } _wwwList.Add(boudleName); yield return(LoadAllDependencies(boudleName)); var objwww = WWW.LoadFromCacheOrDownload(string.Format("file://{0}{1}.unity3d", ResManager.LocalAssetbundlePath, boudleName), _manifest.GetAssetBundleHash(string.Format("{0}.unity3d", boudleName)), 0); yield return(objwww); if (!string.IsNullOrEmpty(objwww.error)) { Debug.Log(objwww.error); if (callBack != null) { callBack(resName, null, data); } } else { _objDic.Add(boudleName, objwww.assetBundle); var resNames = resName.Split('/'); var obj = objwww.assetBundle.LoadAsset(resNames[resNames.Length - 1]); if (callBack != null) { callBack(resName, obj, data); } } _wwwList.Remove(boudleName); resManagerState = ResManagerState.EFree; }
public void LoadResources(string resName, LoadderCallBack callBack, LoadderData data) { if (string.IsNullOrEmpty(resName)) { callBack(null, null, data); return; } object obj = Resources.Load(resName); callBack(resName, obj, data); }
public void LoadAsset(string resName, LoadderCallBack callBack, LoadderData data) { if (string.IsNullOrEmpty(resName)) { callBack(null, null, data); return; } if (UseAssetBoudle) { Game.Instance.StartCoroutine(IeLoadAsset(resName, callBack, data)); } else { object obj = Resources.Load(resName); callBack(resName, obj, data); } }
public void LoadResources(string resName, LoadderCallBack <GameObject> LoadCallBack, LoadderData data) { if (LoadCallBack == null) { return; } if (string.IsNullOrEmpty(resName)) { LoadCallBack(null, null, data); } var resPath = string.Format("prefabs/ui/{0}", resName); if (ResPoolManager.Instance.HasSpawn(resPath)) { ResPoolManager.Instance.LoadAsset(resPath, LoadCallBack, data); } else { var loadData = new UIResLoadderData(LoadCallBack, data); ResManager.Instance.LoadResources(resPath, OnLoadCallBack, loadData); } }
public UIResLoadderData(LoadderCallBack <GameObject> loadCallBack, LoadderData data) { LoadCallBack = loadCallBack; this.data = data; }
public void LoadAsset(string resName, LoadderCallBack <GameObject> LoadCallBack, LoadderData data) { LoadCallBack(resName, SpawnPoolDic[resName].GetSpwan(), data); }