关于loading:AssetBundleUnloadtrue无法卸载图集

9次阅读

共计 1417 个字符,预计需要花费 4 分钟才能阅读完成。

1)AssetBundle.Unload(true) 无奈卸载图集
​2)对于 Unity 2D 游戏地图预加载的问题
3)Addressables 是否反对某些资源不打 Bundle 间接加载源文件


这是第 342 篇 UWA 技术常识分享的推送,精选了 UWA 社区的热门话题,涵盖了 UWA 问答、社区帖子等技术知识点,助力大家更全面地把握和学习。

UWA 社区主页:community.uwa4d.com
UWA QQ 群:465082844

Loading

Q:如图,AssetBundle.Unload(true) 中依然有一份图集残留在内存中,应用 Resources.UnloadUnusedAssets() 能够卸载,但用 GC.Collect 无奈卸载,若不调用 Resources.UnloadUnusedAssets(),有其余的方法能够卸载这个图集吗?

A1:目前 Unity 3D 中的 Atlas 不须要额定的卸载操作,只须要确保 Atlas 的 AssetBundle 和援用 Atlas 的 AssetBundle 齐全卸载后,Atlas 天然会卸载。

感激沐风 @UWA 问答社区提供了答复

A2:能够试试 Resources.UnloadAsset,印象中切换场景会主动调用 UnloadUnusedAssets。

感激 Knight-132872@UWA 问答社区提供了答复

Loading

Q:请问,2D 游戏地图如何实现地图的无缝预加载性能?须要具体学习什么能力写进去相干的代码呢?

A1:假如上一个关卡为 x -1,本关卡为 x,下一关卡为 x +1,依据须要提前预加载 x +- y 的关卡数量就行了,以自身关卡 ID 去计算需加载的范畴,每次切换关卡依据关卡从新计算范畴。

感激曹潘赣 @UWA 问答社区提供了答复

A2:用一个工具阐明一下思路 LDTK。

导出的数据是以关卡为单位的。进入指标关卡时,要队列加载相邻的关卡,如果加载过程中卡顿体验不好则要预测下一个指标关卡,并在加载时用其它视觉效果覆盖加载卡顿。

还有一种是把所有关卡都加载完,关卡转换基本上是无感的,这种要思考解决内存和效率问题。

具体代码实现就是应用工具提供的 API,有编程根底就没有问题。

如果是 Unity,则波及到资源加载、场景等概念。

感激李伟 @UWA 问答社区提供了答复

AssetBundle

Q:请问 Addressables 是否反对某些资源不打 Bundle 间接加载源文件,比方 mp4、bytes 文件等?

A:Addressables 也是基于 Bundle 的,像播放 mp4 这样的文件如果在 Bundle 中则可能播放出错,能够在资源更新时把这样的文件读出来,放到设施的用户目录里,应用时就能够间接用文件或门路了。

bytes 这样的文件能够放到 Bundle 里,某个版本的 TextAsset 里增加了新办法,这个办法能够用一下:

public NativeArray<T> GetData<T>() where T : struct;

对于大量数据表只须要用一个 ByteBuffer 来解决。如果存储的数据能够分块读取,那内存也不会占用很多。

感激李伟 @UWA 问答社区提供了答复

封面图来源于网络


明天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,咱们遇到的问题只是冰山一角,UWA 社区愿伴你同行,一起摸索分享。欢送更多的开发者退出 UWA 社区。

UWA 官网:www.uwa4d.com
UWA 社区:community.uwa4d.com
UWA 学堂:edu.uwa4d.com
官网技术 QQ 群:465082844

正文完
 0