Beispiel #1
0
 /// <summary>
 /// 添加待加载对象;
 /// </summary>
 /// <param name="url">资源路径</param>
 /// <param name="key">主键值</param>
 /// <param name="weight">资源大小</param>
 /// <param name="type">资源类型</param>
 public void add(string url, string key = null, float bytes = 0, string type = null)
 {
     LoaderData data = new LoaderData();
     data.url = url;
     data.bytes = bytes != 0 ? bytes : 1;
     data.key = key != null ? key : url;
     data.type = type != null ? type : getType();
     list.addElement(data.key, data);
     itemTotal++;  //总待加载资源数增加;
 }
Beispiel #2
0
        /// <summary>
        /// 加载完成;
        /// </summary>
        protected void onComplete(LoaderData data)
        {
            Debug.Log("Complete:" + www.bytesDownloaded);

            Timer.instance.clearTimer(timerHandleKey);  //停止计时器函数;
            AssetBundle bundle = www.assetBundle; //TODO 将assetBunle进行存储;

            itemLoaded++;   //已加载资源个数增加;
            bytesLoaded += data.bytes;   //已加载资源字节数增加;

            if (itemLoaded >= itemTotal)
            {
                if (onCompleteHandler != null)
                    onCompleteHandler(data.key);   //执行外部加载完成回调函数;
            }
            else
                StartCoroutine(run(list.pop()));  //启动协程进行加载;
        }
Beispiel #3
0
 /// <summary>
 /// 执行加载;
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 IEnumerator run(LoaderData data)
 {
     www = new WWW(data.url);
     timerHandleKey = Timer.instance.doFrameLoop(1, onProgress);
     yield return www;
     onComplete(data);  //执行加载完成函数;
 }