6

AssetBundle.Unload(true)无法卸载图集

 1 year ago
source link: https://blog.uwa4d.com/archives/TechSharing_342.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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(),有其他的办法可以卸载这个图集吗?

1.png

A1:目前Unity 3D中的Atlas不需要额外的卸载操作,只需要确保Atlas的AssetBundle和引用Atlas的AssetBundle完全卸载后,Atlas自然会卸载。

感谢沐风@UWA问答社区提供了回答

A2:可以试试Resources.UnloadAsset,印象中切换场景会自动调用UnloadUnusedAssets。

感谢Knight-132872@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/648c3ab83aedc82dd00214c9


Loading

Q:请问,2D游戏地图如何实现地图的无缝预加载功能?需要具体学习什么才能写出来相关的代码呢?

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

感谢曹潘赣@UWA问答社区提供了回答

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

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

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

具体代码实现就是使用工具提供的API,有编程基础就没有问题。

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

感谢李伟@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/63eafccb0638540599085f13


AssetBundle

Q:请问Addressables能否支持某些资源不打Bundle直接加载源文件,比如mp4、bytes文件等?

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

bytes这样的文件可以放到Bundle里,某个版本的TextAsset里添加了新方法 ,这个方法可以用一下:

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

对于大量数据表只需要用一个ByteBuffer来处理。如果存储的数据可以分块读取,那内存也不会占用很多。

感谢李伟@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/63eae787063854059908483d

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK