找回密码
 立即注册
查看: 348|回复: 4

unity3d如何读取osgb数据,并动态加载场景?

[复制链接]
发表于 2023-2-17 14:54 | 显示全部楼层 |阅读模式
unity3d如何读取osgb数据,并动态加载场景?
发表于 2023-2-17 15:02 | 显示全部楼层
unity 加载倾斜摄影-C#解析osgb(一)
如果可以把osgb中的数据拿出来 相信会unity的数百种加载数据的办法
发表于 2023-2-17 15:06 | 显示全部楼层
前言

想要比较AsssetBundle加载效率,首先需要知道加载AssetBundle的主要两种方式,分别是new WWW(url)和WWW.LoadFromCacheOrDownload,两种方式的具体用法,可以在官方的API中找到,本篇就不多介绍了。
1. new WWW是单纯地把AssetBundle加载到内存
2. WWW.LoadFromCacheOrDownload是把AssetBundle写入到缓存中,然后在需要加载AssetBundle时,再从缓存中读取AssetBundle,达到一个加速效果,而且只在内存中保存一些必要的缓存指针信息,因此非常省内存,也是大多数人会选择使用的。
两种方式的加载效率比较:





image




image
测试结果:

1.在PC上,两种方式的效率,第一次只相差大约40%,可能PC端的硬盘有高速缓存和读写速度相对较快的原因,而在移动端,效率则相差2倍之多
2.第二种方式在二次读取时,速度很快
3.推荐使用第二种方式
总结:

根据上面的比较,可以看出WWW.LoadFromCacheOrDownload虽然在第首次加载时,略慢于new WWW,但在之后的二次加载(如退出游戏程序,再次进入游戏,也算二次加载),WWW.LoadFromCacheOrDownload会带来更加快的加载速度和更加节约内存,即使是一百多兆的资源,全部加载完成,也大概只占不要10MB的内存,因为Unity给它们都做了硬盘缓存,开辟了大量的磁盘空间来换取消耗大量内存的代价。并且在加载完AssetBundle后,实例化的速度和new WWW的无任何差异。WWW.LoadFromCacheOrDownload完胜!
其他注意点:

使用WWW.LoadFromCacheOrDownload加载时,若磁盘空间已满并所有的缓存文件都在使用中,则WWW.LoadFromCacheOrDownload会调用new WWW()方式,把资源载入内存中。较好地解决了磁盘不足的情况。
在缓存中,Unity进行资源识别的唯一方式是资源名称+版本号,因此无论是何种资源,资源名称不能相同。
对缓存的所有操作都在Caching类中,仅提供简单的查询和清除操作。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-2-17 15:14 | 显示全部楼层
Unity加载倾斜摄影模型/激光点云,开源_Gaoxing' Blog-CSDN博客
发表于 2023-2-17 15:20 | 显示全部楼层
Unity3d动态加载osgb倾斜摄影数据_Commander-CSDN博客
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 11:57 , Processed in 0.090866 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表