首页 > 其他分享 >Addressable卸载AssetBundle失效的疑惑

Addressable卸载AssetBundle失效的疑惑

时间:2023-04-07 14:37:29浏览次数:52  
标签:社区 场景 AssetBundle Addressable 卸载 UWA uwa4d 加载

1)Addressable卸载AssetBundle失效的疑惑
​2)模型Meta中的hasExtraRoot参数的作用及其历史原因
3)TMP为什么有多次Delegate.Combine()的GC
4)准备在海外发行游戏,比较常用的身份认证类SDK


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

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

Addressable

Q:项目开发的版本是UnityWebGL,我有一个初包场景A,一个过渡场景Loading,两个用Addressables打的Bundle场景B与C,都是Remote的。

我在A场景点击按钮,使用SceneManager.LoadScene到Loading,然后用Addressables.LoadSceneAsync加载Bundle场景B,并保存了B场景的句柄Handle。

进入到B场景后,点击按钮跳转到Loading场景,然后拿到保存的B场景句柄Handle,使用Addressables.UnloadSceneAsync与Resources.UnloadUnusedAssets,然后Addressables.LoadSceneAsync加载Bundle场景C,并把原B场景的句柄Handle赋值C场景的句柄。

进入到C场景后,又切换B场景,在Google浏览器F12模式下,第二次加载B场景,网络模块下没显示场景B的Bundle。

给我的感觉是B场景的Bundle在跳转C场景的时候没有被卸载,希望能帮助解答一下这是什么原因。

我查看了源码,Addressables.UnloadSceneAsync的底层确实是调用了AssetBundle.Unload(true);的。

A:Addressable加载过一次的AssetBundle,会下载到本地硬盘缓存,Addressable.UnloadSceneAsync和Resources.UnloadUnusedAssets这两个操作只是会让相关资源从Runtime内存中卸载,不会删除本地硬盘的内容。

第二次加载是不用从远程服务器加载的,而是通过本地硬盘加载,所以不存在网络下载了。

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


Mesh

Q:模型Meta中的hasExtraRoot参数的作用是什么?有什么历史原因么?

模型Meta中有个奇怪的参数hasExtraRoot,看起来是humanDescription旗下的,但实际会对任何类型的模型都造成影响。

 

 

这个参数无论是在API还是编辑器界面,都找不到调整的地方。当前项目中一部分是0,一部分是1。观察得出,这个在为1的情况下,会保留外层无Mesh关联的Transform;为0的情况下会移除顶层Child不超过1,并且无Mesh的Transform。

不知道这个是怎么生成的,是不是为了适配某些历史版本呢?

针对以上问题,有经验的朋友欢迎转至社区交流分享:
https://answer.uwa4d.com/question/64252d9f6778221ae30a0fd9


TextMeshPro

Q:TMP为什么有多次Delegate.Combine()的GC?

只有一个界面对一个TMP的OnPreRenderText进行了一次+=的操作,为什么在其他界面也发现有Delegate.Combine()的GC,且每次大小不同?

下图是唯一操作过的界面:

 

下图是其他界面,有2MB的,还有些几十KB的:

 

针对以上问题,有经验的朋友欢迎转至社区交流分享:
https://answer.uwa4d.com/question/6423ff146778221ae30955ca


Platform

Q:准备在海外发行游戏,请问身份认证类SDK有哪些比较常用?最好是能直接支持Unity接入的,谢谢。

A:Google、Facebook或Game Center应该都可以。

感谢WTF-082699@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:465082844

标签:社区,场景,AssetBundle,Addressable,卸载,UWA,uwa4d,加载
From: https://www.cnblogs.com/uwatech/p/17296011.html

相关文章

  • Linux系统安装python3.8与卸载教程
    一、安装python解释器1.获取系统版本信息首先,查看Linux系统版本信息:[root@oldboy~]#cat/proc/versionLinuxversion4.18.0-240.1.1.el8_3.x86_64([email protected])(gccversion8.3.120191121(RedHat8.3.1-5)(GCC))#1SMPThuNov1917:20......
  • centos快速的安装和卸载docker
    在centos系统上快速安装docker-ce,废话不多说,直接上shell代码,适配与所有centos和ali-cloud系统: #安装依赖包yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2 #添加Docker软件包源,我们这里配置了阿里云的镜像源yum-config-manager......
  • Mac OS 安装/卸载 Homebrew
    背景介绍:https://brew.sh/index_zh-cnmacOS(或Linux)缺失的软件包的管理器Homebrew能干什么?使用Homebrew安装Apple(或您的Linux系统)没有预装但你需要的东西。Homebrew会将软件包安装到独立目录,并将其文件软链接至 /opt/homebrew 。Homebrew不会将文件安装到它本身......
  • Unity升级后打包AssetBundle变慢
    1)Unity升级后打包AssetBundle变慢​2)打包使有些资源合成了一个资源data.unity3d,有些分开的原因3)Unreal在移动设备中无法使用Stat命令获取到GPUThread的耗时4)Unity中如何看到相机视野范围内的剔除结果这是第330篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社......
  • CentOS7 卸载mysql(YUM源方式)
     防止重装yum方式查看yum是否安装过mysqlyumlistinstalledmysql*如或显示了列表,说明系统中有MySQLyum卸载 根据列表上的名字 yumremovemysql-community-clientmysql-community-commonmysql-community-libsmysql-community-libs-compatmysql-commun......
  • CentOS 7.x 卸载删除MariaDB,重新安装
    卸载[root@node1~]#rpm-qa|grepmariadbmariadb-5.5.56-2.el7.x86_64mariadb-libs-5.5.56-2.el7.x86_64mariadb-server-5.5.56-2.el7.x86_64[root@node1~]#[root@node1~]#yumremovemariadb...Removed:mariadb.x86_641:5.5.56-2.el7DependencyRemoved:mariadb-server.x......
  • 【Linux Centos】如何卸载自带的python和yum以及卸载后如何重新安装yum
    【LinuxCentos】如何卸载自带的python和yum以及卸载后如何重新安装yum注意如果不是必要情况,请不要卸载服务器自带的python,因为yum等命令都会用到python库,卸载以后可能造成不良后果。如果只是觉得系统python版本不合适,想安装新版本,建议安装anaconda或miniconda,在不同的环境中使......
  • 卸载SQL Server 2012图文教程
    卸载步骤1、键盘上同时按”Win+R”这两个键,或如下图所示右击开始图标选择“运行”2.输入”services.msc”命令打开服务3.找到所有跟SqlServer有关的服务,并且停止这些服务。(一定要先停止服务再卸载,否则后续卸载文件过程中会失败)  4.进入控制面板,点击“程序卸载”5.在......
  • revit专用卸载工具,完全彻底卸载删除干净revit各种残留注册表和文件的方法和步骤。
    revit专用卸载工具,完全彻底卸载删除干净revit各种残留注册表和文件的方法和步骤。如何卸载revit呢?有很多同学想把revit卸载后重新安装,但是发现revit安装到一半就失败了或者显示revit已安装或者安装未完成,大多数情况下其实是revit没有被卸载干净。还有的同学会遇到安装错误1625,然后......
  • android 监听SDCard安装和卸载的代…
    //监听类privatefinalBroadcastReceiversdcardListener=newBroadcastReceiver(){@OverridepublicvoidonReceive(Contextcontext,Intentintent){Stringaction=intent.getAction();Log.d("TAG","sdcar......