知识点一  Resources异步加载是什么

知识点二 Resources异步加载方法

1、通过异步加载中的完成事件监听 使用加载的资源

当我们使用Resources的LoadAsdync函数进行异步加载文件时,如果我们只是做到这一步,那么运行起来是没有任何效果的。这里完成的仅仅只是将配置环境、数据加载。这里就有一个问题了,我们如果知道它是否加载完毕?

看一下它的返回类型是一个ResourcesRequest类型,进入内部:

它的基类AsyncOperation,有一个事件,completed

当加载完成后,这个函数会调用completed事件,通知外部加载完毕了。我们可以通过监听这个事件去检测加载是否完成。给completed事件加一个新的委托,当加载完成时系统调用completed,执行LoadOver(AsyncOperation rq)。打印加载结束。

加载完成图片,我们需要使用它。我们在OnGUI中去使用。

注意这个判断是否为null,异步加载是需要一定时间去加载文件的。不是马上就完成加载。因此要做出一个条件判断。

什么时候将资源实例化呢?

当异步加载完成时,asset这个公共属性会得到加载的资源。我们通过调用asset来得到里面的内容。

注意这里需要两次as 转换

第一次as: 因为asset是ResourcesRequest的属性。所以将AsyncOperation转为ResourcesRequest

第二次as:asset返回的是Object类型,我们要用Texture去接收。所以是Object转Texture;

2、通过协程使用加载的资源

首先创建一个协程:

yield return 会返回一些特点的内容。将rq作为yield return的返回值。

ResourcesRequest基类为AsyncOperation

AsyncOperation为YieldInstryction

WaitForSeconds基类也是YieldInstryction。

证明ResourcesRequest 也是和协程有关系的。

当资源加载完,才会执行后面的代码。资源加载完后,将图片实例化。

测试:

属性的使用。

以上的两种方法,无论是通过时间completed还是通过协程,主要都是解决的一个问题,文件是否加载完成?因为我那么只有当文件加载完成,才能进行实例化。而第一种方法,是使用completed来完成加载完成实例化,第二种则是系统帮助我们完成了是否加载完成判断。

Unity-资源异步加载相关推荐

  1. Webpack实战(九):实现资源按需加载-资源异步加载

    第八篇[<教你搞懂webpack如果实现代码分片(code splitting)>] (https://blog.csdn.net/lfcss/article/details/104099 ...

  2. 3D引擎多线程:资源异步加载

    本文原创版权归 博客园 flagship 所有,如有转载,请详细标明作者及原文出处,以示尊重! 作者:flagship 原文:3D引擎多线程:资源异步加载 资源异步加载恐怕是3D引擎中应用最为广泛的多 ...

  3. unity的异步加载

    本文主要是代码上的理解,关于场景跳转时UI方面的Image进度条以及百分比表示进度比较简单,暂时不讨论 在unity中加载场景要先引入命名空间 using UnityEngine.SceneManag ...

  4. Unity 场景异步加载(加载界面的实现)

    前言: 玩游戏最讨厌的是什么呢?当然是游戏加载界面啦 但是你知道吗,加载界面在游戏制作中是不可或缺的,它可以使我们的场景完全加载完毕后再进入游戏,确保用户不会出现加载卡顿的情况. 如何实现一个简易的加 ...

  5. UE4 使用UAssetManager进行资源的异步加载

    加载资源的主要代码 void AMyAssetLoadManager::DoAsyncLoadAssetList() { UAssetManager &AssetManager = UAsse ...

  6. AssetBundle异步加载被中断的问题

    1)AssetBundle异步加载被中断的问题 ​2)LuaDLL.lua_pcall()自身产生开销问题 3)法线在手机渲染时出现的错误问题 4)UNITY_MATRIX_I_V 和Camera.m ...

  7. egret白鹭引擎RES资源管理模块,资源动态加载失效BUG,加载卡死BUG,完整解决方案与超详细调试漏洞过程

    我是千里马,是一位软件工程师,最近几天完成了用户中心全套内容设计和游戏中大大小小的各种bug处理解决,准备开始游戏的正式填充,突然想起来还有两件抛之脑后的事情没有做.因为之前一直都是忙碌大方向内容设计 ...

  8. UNITY所谓的异步加载几乎全部是协程,不是线程;MAP3加载时解压非常慢

    UNITY所谓的异步加载几乎全部是协程,不是线程;MAP3加载时解压非常慢 实践证明,以下东西都是协程,并非线程(thread): 1,WWW 2,AssetBundle.LoadFromFileAs ...

  9. combotree 可以异步加载吗_Unity AssetBundle 资源打包,加载,本地缓存方式,安卓,PC本地加载路径问题...

    AssetBundle的定义和作用: 1,AssetBundle是一个压缩包包含模型.贴图.预制体.声音.甚至整个场景,可以在游戏运行的时候被加载. 2,AssetBundle自身保存着互相的依赖关系 ...

  10. 异步加载场景与异步加载游戏资源

    异步加载场景与异步加载游戏资源 Application.LoadLevel 加载关卡 在同步加载游戏场景的时候通常会使用方法Application.LoadLevel 加载关卡. 该方法在执行完App ...

最新文章

  1. 系统芯片(SOC)架构- Aviral Mittal
  2. 使用opennlp进行文档分类
  3. SQL Server自带备份整个数据库脚本工具
  4. jsp动作元素include学习
  5. 面试官问:为什么 Java 线程没有 Running 状态?我懵了
  6. OGG ORA-1403 NO DATA FOUND
  7. 【Flink】Flink ES6写入报错 IncompatibleClassChangeError: Implementing class
  8. 一种改进CA-CFAR算法及其MATLAB编程实现,论文仿真——《基于LFMCW雷达多目标检测的CA-CFAR改进算法》
  9. 【知识地图】开发测试全栈 (未完待续)
  10. iphone导出视频 无法连接到设备_爱思助手无法识别设备或者连接超时解决办法...
  11. java泛型:T与?的使用及区别
  12. 打印1000~2000年之间的闰年
  13. 实现一个简单的Java类:长方形与梯形的面积计算
  14. PC微信自动保存朋友圈图片
  15. Interop type 'Microsoft.Office.Interop.Word.ApplicationClass' cannot be embedded. Use the applicable
  16. 好用的高匿代理IP有什么特点?
  17. 如何获取最新的EI期刊杂志目录
  18. “芬香”获上亿融资,店宝宝:别低估私域流量的作用
  19. 2015华为暑期实习面试全过程
  20. vue搜索关键字标红

热门文章

  1. 设置tomcat服务器编码为utf-8编码
  2. h3c 虚拟服务器 下一跳,H3C MSR路由器IPsec配置指导说明
  3. EfficientDet详解
  4. 【解决方案】国标GB28181平台EasyGBS级联EasyCVR视频智能分析搭建“蓝天卫士”网络视频监控系统技术方案
  5. 使用Python爬取安居客二手房房价数据
  6. Popcap Framework 一个游戏框架(c++)
  7. 应付账款账龄分析模板_应付往来账龄分析表模板
  8. 深入理解linux 内核的RCU本质
  9. 帝国理工计算机专业难申吗,帝国理工最难申请的十大专业,A-Level成绩要求是多少?...
  10. Error retrieving https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-modified.meta; received 404