一、Resources异步加载是什么
//在同步加载中
//如果加载过大的资源可能会造成程序卡顿
//卡顿的原因就是 从硬盘上把数据读取到内存中 是需要进行计算的
//越大的资源耗时越长,就会造成掉帧卡顿
//Resources异步加载 就是内部新开一个线程进行资源加载 不会造成主线程卡顿
二、Resources异步加载方法
void Start()
{
#region 二、Resources异步加载方法
ResourceRequest rq = Resources.LoadAsync<Texture>("TexJPG");
rq.completed += OverLoad;
#endregion
}
IEnumerator loadAsset()
{
ResourceRequest rq = Resources.LoadAsync<Texture>("TexJPG");
yield return rq;
tex = rq.asset as Texture;
}
private void OverLoad(AsyncOperation rq)
{
print("加载完成");
tex = (rq as ResourceRequest).asset as Texture;
}
private void OnGUI()
{
if(tex != null)
{
GUI.DrawTexture(new Rect(0, 0, 0, 100), tex);
}
}
总结
//1.完成事件监听异步加载
//好处:写法简单
//坏处:只能在资源加载结束后进行处理
//‘线性加载’
//2.协程异步加载
//好处:可以在协程中处理复杂逻辑,比如同时加载多个资源,比如进度条更新
//坏处:写法稍微麻烦
//“并行加载”
//注意:
//理解为什么异步加载不能马上加载结束,为什么至少要等1帧
//理解协程异步加载的原理