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... UnityWebRequest result : ConnectionError : Unknown Error ResponseCode : 200,Method : GET url : http://101.132.125.213/ServerData/Android/hotscene_scenes_all...
加载代码:
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。