动态导入资源
来源:互联网 发布:java服务器开发与c 编辑:程序博客网 时间:2024/05/16 17:04
第一步:导入AssetBundle包
AssetBundle.LoadFromMemoryAsync//从内存中加载
AssetBundle.LoadFromFile //从硬盘中加载
WWW.LoadfromCacheOrDownload(将来会被UnityWebRequest替代)//从网络中加载
UnityWebRequest’s DownloadHandlerAssetBundle(5.3 or newer)
//从内存中以异步方式加载
IEnumerator Start(){
string path=”资源所在路径”;
AssetBundleCreateRequest request=AssetBundle.LoadFromMemoryAsync(File.ReadAllBytes(path));
yield return request;
AssetBundle bundle = request.assetBundle;
var prefab=bundle.LoadAsset(“MyObject”);
}
AssetBundleCreateRequest 是资源包异步创建请求的返回类,接收异步创建的结果,通过Bundle的二进制数据异步创建AssetBundle对象,完成后会在内存中创建较大的WebStream对象。如果构建时BuildAssetBundlesOptions.None(默认使用LZMA算法),下载完成后会使用线程对AssetBundle包进行解压缩。
//同步方式
AssetBundle ab=AssetBundle.LoadFromMemory(File.ReadAllBytes(path);
//从文件中加载
AssetBundleCreateRequest request=AssetBundle.LoadFromFile(path);
//从网络上加载
IEnumerator InstantiateObject(){
string uri=”“//统一资源路径
UnityWebRequest request=UnityWebRequest.GetAssetBundle(uri);
yield return request.Send();//Send才开始下载
AssetBundle ab=DownloadHandlerAssetBundle.GetContent(request);
或者AssetBundle ab=(request.downloadHandler as DownloadHandlerAssetBundle).assetBundle
}
第二步:加载资源
T objectFromBundle=bundleObject.LoadAsset< T >(assetName);
Object[] objectArray=loadedAssetBundle.LoadAllAssets();
AssetBundleRequest request=loadAssetBundleObject.LoadAssetAsync< T >(assetname);
yield return request;
资源会加载到内存中,不用时主动卸载
- 动态导入资源
- 导入资源
- 动态导入
- 关于VC/MFC不导入资源文件 动态加载GIF动画文件
- Unity导入资源(纹理 Texture 声音 Audio 模型 FBX)动态设置
- yii导入资源文件
- 资源迁移的导入
- VC++ 导入自定义资源
- 资源事务处理导入Demo
- VC++ 导入自定义资源
- Unity之资源导入
- Unity3D导入图片资源
- 开发动态资源--动态网站
- 动态加载资源文件
- MFC 动态提取资源
- sliverlight 资源动态调用
- 资源动态加载
- 资源分配动态规划
- SpringBoot29-springboot企业级开发-批处理Spring Batch
- fork函数
- 岛屿周长
- openoffice使用总结001---版本匹配问题unknown document format for file: E:\apache-tomcat-8.5.23\webapps\ZcnsDms\
- 整数反转
- 动态导入资源
- WPS Excel表格怎么启用宏功能?
- 34. Search for a Range
- 第0届浙江工业校赛
- linux上weblogic新建domain
- java练习2-1
- 矩估计与最大似然估计
- pycharm环境配置opencv
- java练习2-2