上一阶段       回到总览       下一阶段在上一篇我们了解了 Res Kit 的一些背后设计原理,讲解了一些概念,比如:开发阶段、真机阶段等。
在这一篇,我们回到 Res Kit 使用细节上。
在 Res Kit 的第一篇,我们介绍了 Res Kit 的基本使用,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
   | using QF.Res; using QF.Extensions; using UnityEngine;
  namespace QF.Example  { 	public class TestResKit : MonoBehaviour  	{
  		void Awake ()  		{ 			 			ResMgr.Init (); 		}
  		 		 		 		 		 		ResLoader mResLoader = ResLoader.Allocate ();
  		void Start ()  		{ 			 			 			mResLoader.LoadSync<GameObject> ("TestObj") 				.Instantiate (); 		}
  		void OnDestroy() 		{ 			 			 			 			mResLoader.Recycle2Cache(); 			mResLoader = null; 		} 	} }
   | 
我们把目光聚焦到 加载相关的代码,如下:
1 2 3 4
   | 
  mResLoader.LoadSync<GameObject> ("TestObj")       .Instantiate ();
 
  | 
代码中,我们通过 mResLoader.LoadSync 加载资源,LoadSync 意思是同步加载。有同步加载对应地,就有异步加载。
异步加载
异步加载代码如下:
1 2 3 4 5 6 7 8 9 10 11
   |  mResLoader.Add2Load("TestObj",(succeed,res)=>{     if (succeed)      {         res.Asset.As<GameObject>() 						.Instantiate();     } });
 
  mResLoader.LoadAsync();
 
  | 
与 LoadSync 不同的是,异步加载是分两步的,第一步是添加到加载队列,第二步是执行异步加载。
这样做是为了支持同时异步加载多个资源的。
同时异步加载多个资源
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   |  mResLoader.Add2Load("TestObj",(succeed,res)=>{     if (succeed)      {         res.Asset.As<GameObject>()             .Instantiate();     } });
 
  mResLoader.Add2Load("TestObj1",(succeed,res)=>{});
 
  mResLoader.Add2Load(new List<string>(){ "TestObj2","TestObj3","TestObj4"});
 
  mResLoader.LoadAsync(()=>{      "资源加载成功".LogInfo(); });
 
  | 
代码比较简单,考虑了多种加载情况。
此篇的内容就这些。
- 转载请注明地址:凉鞋的笔记:liangxiegame.com。
 - 任何问题欢迎到 QQ 群:623597263 交流。
 
上一阶段       回到总览       下一阶段