首页 > 其他分享 >AssetBundle.Unload(true)无法卸载图集

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

时间:2023-07-10 14:55:16浏览次数:48  
标签:社区 Unload AssetBundle 卸载 UWA true 关卡 加载

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

标签:社区,Unload,AssetBundle,卸载,UWA,true,关卡,加载
From: https://www.cnblogs.com/uwatech/p/17541169.html

相关文章

  • Java true和false类型如何取反 这个问题怎么解决?
    Javatrue和false类型如何取反在Java中,true和false是布尔类型的取值。布尔类型只有两个取值:true和false。它通常用于判断和控制程序的流程。在某些情况下,我们需要对布尔类型进行取反操作。下面将介绍如何在Java中对布尔类型进行取反,并给出一个具体问题的解决方案。布尔类型的取反......
  • 【Maven】Unknown lifecycle phase “.test.skip=true“.问题解决
    我们在运行跳过单元测试时的命令mvnpackage-Dmaven.test.skip=true时,出现Unknownlifecyclephase".test.skip=true".如下[ERROR]Unknownlifecyclephase".test.skip=true".Youmustspecifyavalidlifecyclephaseoragoalintheformat<plugin-prefix>......
  • 为什么Unity使用AssetBundle热更的时候要剔除掉.mainfest文件
    1)为什么Unity使用AssetBundle热更的时候要剔除掉.mainfest文件​2)Addressable热更,断点续传问题3)在线性空间,使用后处理解决UI混合问题这是第341篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。UWA社区主页:comm......
  • SimpleDateFormat的setLenient(true或false)-----自动计算日期
    有时候我们需要判断用户的日期格式是否正确,虽然绝大多数会在前台处理,但是也有需要从文件流读入的情况,如果日期不合格就需要抛异常,这时候就需要禁止SimpleDateFormat的自动计算功能。此时就需要用到setLenient(),这个方法的含义是是否严格解析日期,具体用法如下。packagecom.test.......
  • vxe-table 多选框手动设置选中方法setCheckboxRow(rows,true) 失效问题以及翻页保留选
    现象:rows数组里明明有三个对象,但是只有第一个的复选框选中原因:row-config配置项里需要配置keyField:'id' 翻页保留问题官方有配置项checkbox-config reserve 是否保留勾选状态,对于某些场景可能会用到,比如数据被刷新之后还保留之前选中的状态(需要有row-id)......
  • 解决TrueNAS中Smb共享文件路径不区分大小写的问题
    问题在Truenas中,默认的smb文件分享中,文件夹是不区分大小写的.这在一些情况下会导致无法重命名等问题,严重时可能会造成拷贝文件时的全文件夹文件丢失.这是linux下的情况,在已存在others文件夹的情况下,若再新建Others文件夹,会提示目录已存在,但实际上两个目录大小写......
  • 【mysql】parseTime=true 参数说明以及如何在 GORM 中使用它避免 Scan error on colum
    什么是parseTime=true参数parseTime=true是一个MySQL数据库连接参数,它告诉MySQL驱动程序将日期时间类型的值解析为time.Time类型。在MySQL中,日期时间类型的值可以表示为字符串,例如2022-07-0113:30:00。默认情况下,MySQL驱动程序将这些值作为[]uint8类型返回,这可能......
  • python中parse的action = store_true含义
     我们在python脚本中经常看到action="store_true,如下图: parser.add_argument('--image',default=False,action="store_true",help='Imagedetectionmode,willignoreallpositionalarguments') 如果运行代码时加了   --image,那么im......
  • TrueNAS CORE 13.0-U5.1 TrueNas存储平台 安装部署设置
    Truenas官网地址:https://www.truenas.com/下载TrueNASCORE13.0-U5.1服务器配置要求:CPU四核心内存8G硬盘按需求一、安装:与FREENAS一样(忽略)二、开始配置配置网卡信息说明开始配置网卡信息即可,因此我们选择第一项:三、浏览器访问TrueNas我们可以Https访问也可http访问......
  • vue 报错 !!vue-style-loader!css-loader?{“sourceMap“:true}!.
    npmrundev报错Thesedependencieswerenotfound:*!!vue-style-loader!css-loader?{"sourceMap":true}!../../node_modules/vue-loader/lib/style-compiler/index?{"vue":true,"id":"data-v-858b20d4","scoped":true,......