//加载 private IEnumerator _Load() { while (0 < LoadQueue.Count) { ResourceObject resObject = LoadQueue.Dequeue(); //加载 if (!resObject.inBundle) { //Resources中加载 ResourceRequest request = Resources.LoadAsync(resObject.name); yield return(request); //实例化 resObject.resObject = Instantiate(request.asset) as GameObject; } else { //AssetBundle中加载 string fileName = Path.GetFileName(resObject.name); AssetBundleRequest request = AssetBundleLoader.LoadFileFromAssetBundleAsync(fileName.ToLower(), fileName); yield return(request); //实例化 resObject.resObject = Instantiate(request.asset) as GameObject; } if (null == resObject.resObject) { Debug.LogError("ResourceLoad._Load Load Faild name = " + resObject.name); } //回调 resObject.CallLoaded(); } //协程结束 CoroutineHandle = null; }