Exemple #1
0
    //加载
    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;
    }