首页 > 其他分享 >Assetbundle.Unload(true)卸载资源时没调用ScriptableObject的OnDisable

Assetbundle.Unload(true)卸载资源时没调用ScriptableObject的OnDisable

时间:2024-03-13 10:37:25浏览次数:17  
标签:社区 ScriptableObject Unload Assetbundle 卸载 UWA uwa4d 加载

1)Assetbundle.Unload(true)卸载资源时没调用ScriptableObject的OnDisable
2)Unity VolumeManager中ReplaceData如何优化
3)关于使用Addressable的资源放在远程服务器后的下载问题
4)Prefab对DLL中脚本的引用丢失


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

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

Memory

Q:最近发现项目中的Mono内存占用一直在增长。项目用的是Addressables来管理资源。

看了下内存这块,发现项目中的Spine资源SkeletonDataAsset.cs分配了一堆内存。测试了一下,发现当我调用卸载接口时,继承ScriptableObject类的OnDisable并没有被调用到。

现在开始怀疑是不是因为ScriptableObject并没有被卸载干净导致。

有人知道这是为什么导致的吗?

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


Script

Q:请问Unity VolumeManager中ReplaceData怎么优化?为什么每帧都会更新所有的参数?

A:因为每个相机需要判断Post是否对自己生效,每个相机执行前需要还原成默认值,否则其他相机的结果会影响到当前相机的判断结果。不只是每帧执行,是每帧每个相机都会执行一次。

感谢1 9 7 3-311135@UWA问答社区提供了回答


Resource

Q:关于Addressable构建资源在远程服务器上下载出错,打包Android后我将自己的热更资源放在远程服务器上,当我运行APK之后,在已经加载了AOT的Bundle和热更代码的Bundle的情况下,再下载一个144MB的Bundle时报错,在该文件目录下的其它Bundle正常加载。而我使用Addressable的Hosting进行局域网热更时加载完全没问题。

错误日志:
OperationException : GroupOperation failed because one of its dependencies failed RemoteProviderException : Unable to load asset bundle from : http://101.132.125.213/ServerDatalAndroid/hotscene_scenes_all_2909c01451a389c3c90a83bbd3eb13b9.bundle UnityWebRequest result : ConnectionError : Unknown Error ResponseCode : 200,Method : GET url : http://101.132.125.213/ServerData/Android/hotscene_scenes_all_2909c01451a389c3c90a83bbd3eb13b9.bundle

加载代码:

 public AssetReference hotUpdateMainSceneRef; // 热更主场景
        private async UniTask _enter_hotfix_main_scene()
        {
            try 
            {

//下载热更新场景
                var scene = await Addressables.LoadSceneAsync(hotUpdateMainSceneRef);
                // 激活场景
                await scene.ActivateAsync();
            }
            catch (Exception ex)
            {
                text.text += $"加载热更场景报错\n"+ex;
            }


        }

  

文件目录:

 

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


Prefab

Q:开发时,不希望策划看到源码,于是将源码替换成DLL,但是这样挂在Prefab上的脚本引用会丢失,请问怎么解决?

A:通过反射查找DLL所有继承Mono的脚本,然后创建一个空的派生类继承那个Mono脚本,接着把脚本的Meta的GUID和源码里脚本保持一致,把所有生成的派生空脚本和DLL放同一个目录,只有非程序人拉取即可,我们项目就是这么弄的。

感谢水岸上@UWA问答社区提供了回答

封面图来源于网络


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

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

标签:社区,ScriptableObject,Unload,Assetbundle,卸载,UWA,uwa4d,加载
From: https://www.cnblogs.com/uwatech/p/18070043

相关文章

  • 【Unity】ScriptableObject使用之后,重新打开Unity会报错
    导致问题出现的原因:ScriptableObject的类与其他类放一起了具体请见:unity2020.3官方文档ScriptableObject部分解决方法:为ScriptableObject单独创建一个c#脚本,并将c#名称与ScriptableObject类名保持一致。猜测出现这样的原因,如果哪里不对烦请大佬指正一下:Unity中基本上都是会通......
  • Unity基于AssetBundle资源管理流程详解
    在Unity游戏开发中,资源管理是一个非常重要的环节。随着游戏的发展,资源会变得越来越庞大,因此需要一种高效的资源管理方式来减少内存占用和加快加载速度。AssetBundle是Unity提供的一种资源打包和加载方式,可以将资源打包成一个独立的文件,然后在运行时进行加载和卸载。本文将详细介绍......
  • Unity5.x shader打包AssetBundle总结
    unity5.x  shader打包AssetBundle总结最近比较忙,好久没有更新博客了,新项目切换到unity5.x后使用了新的打包机制,在打包shader的时候遇到了一些问题,这里来记录一下吧。 在上一个项目中,我们使用unity4.7,对于shader并没有进行依赖打包,而是由unity打包到了每个用到的AssetBundle......
  • Unity_U_OP1 ScriptableObject 替代单例
    核心思想:解耦GameManager单例模式,不再由一个单例管理所有事件触发,拆分成无数个小单例,各自管理优点:更加灵活的事件管理模式复用性高,对于相关类型的事件,只需要写一遍代码,剩下的拖拖拖就可以实现相同的功能。缺点:管理起来相对麻烦不利于维护,除非对这个系统非常了解,要不然排......
  • 如何拆解Unity 2022.3版本的AssetBundle
    1)如何拆解Unity2022.3版本的AssetBundle2)Unity2022LTS版本的稳定性3)关于AssetBundle禁用TypeTree之后的一些可序列化的问题这是第363篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。UWA社区主页:community.......
  • Unity AssetBundle Browser 使用
    https://blog.csdn.net/WenHuiJun_/article/details/113178688 参数说明BuildTarget-构建捆绑包的目标平台OutputPath-用于保存构建的捆绑包的路径。默认为AssetBundles/。可以手动编辑该路径,也可以选择“Browse”。要恢复默认命名约定,请点击“Reset”。ClearF......
  • 关于AssetBundle禁用TypeTree之后的一些可序列化的问题
    1)关于AssetBundle禁用TypeTree之后的一些可序列化的问题2)启动Unity导入变动的资源时,SingletonScriptableObject 加载不到3)Xcode15构建Unity2022.3的Xcode工程,报错没有兼容的iPhoneSDK这是第361篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术......
  • Unity从AssetBundle中加载特效显示不全的问题
    环境:Unity2021.3.25f1 最近做的项目中经常会出现通过Bundle加载的ParticleSystem显示不全的问题,查阅Unity官方的文档是这样说明的:Meshesmustberead/writeenabledtoworkonthe ParticleSystem.IfyouassignthemintheEditor,Unityhandlesthisforyou.Bu......
  • 29、Flink SQL之DESCRIBE、EXPLAIN、USE、SHOW、LOAD、UNLOAD、SET、RESET、JAR、JOB
    文章目录Flink系列文章四、SHOW语句1、java示例2、FlinkSQLcli示例3、showtables1)、语法2)、示例4、SHOWCREATETABLE5、SHOWCOLUMNS1)、语法2)、示例6、SHOWJARS7、SHOWJOBS五、LOAD语句1、语法2、Java示例3、FlinkSQLCli示例六、UNLOAD语句1、语法2、java示例3、Flink......
  • 29、Flink SQL之DESCRIBE、EXPLAIN、USE、SHOW、LOAD、UNLOAD、SET、RESET、JAR、JOB
    Flink系列文章1、Flink部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接13、Flink的tableapi与sql的基本概念、通用api介绍及入门示例14、Flink的tableapi与sql之数据类型:内置数据类型以及它们的属性15、Flink的tableapi与s......