Addressable资源热更新疑问
时间:2023-05-04 20:37:00
1)Addressable资源热更新问题
2)如何解决远处网格线会花的问题?
3)着色器中某些特殊图片的用途
4)Lightmap重复加载内存
5)Unity Job System问题
这是第243篇UWA推动技术知识共享。今天,我们继续为您选择一些与开发和优化相关的问题。建议阅读10分钟,仔细阅读后会有收获。
UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)
Addressable
Q:Addressable资源热更新,提示CRC Mismatch,上传需要热更新的资源CDN对应目录,启动游戏时报错误:
A:我们的项目以前也遇到过同样的问题,具体表现是包装增量后Bundle的Hash但是CRC变化,导致加载错误。
这里有两种处理方案,仅供参考:
就是按照Unity官方说的,在Schema上禁用掉CRCCheck;但这种方法正在验证中Bundle下载的完整性和正确性可能存在一些问题。
加入热更新过程Hash和CRC当检测到任何值发生变化时,应确定双重检测Bundle需要更新并重载最新的Catalog文件;同样的问题是,它可能会增加很多Bundle即便如此,下载Bundle内容未更新。
感谢Hybrid_8974@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5fb9334d10a17c6c2b09d236
Texture
Q:想要达到网格线的效果,但是远处的线会花,原因是什么?这是正方形的Mesh,然后使用UV缩放覆盖n个小格子,图片设置成Repeat,并且关闭了Mipmap。但是远处还是会有线花。有什么解决办法吗?
A1:把Texture的Aniso Level试试值调高试。
Aniso Level它是用来低角度看地面的。另外,把Filter Mode设置成Trilinear,不会有一段一段的效果,就是开销比较大。
感谢Prin@UWA问答社区提供答案
A2:按下图调整后,问题得到解决:
感谢题主halm@UWA问答社区提供答案,欢迎转社区交流:
https://answer.uwa4d.com/question/6051be6fcfa35d5b53669b27
Shader
Q:如下图所示,因为资源是从其他地方下载的,没有详细说明,所以想知道这张图在哪里TA用来做什么?T_M_Body_Msa_b.png、T_M_Body_Msa_g.png和T_M_Body_Msa_Mtl.png 分别代表哪个着色器使用,给个关键字提示,谢谢。
A:分别为b(Bump)、g(Glossness)和Mtl(Metallic)。
感谢jim@UWA问答社区提供答案,欢迎转社区交流:
https://answer.uwa4d.com/question/604f2c87cfa35d5b53669ac5
Rendering
Q:下图,为什么?Lightmap在Profile会有重复吗?我觉得每个都是40MB,有没有办法优化?而且在相应的引用脚本中,没有发现相应的引用脚本Lightmap的引用。
A:看起来每张Lightmap都加载了两份。受试者是否写过自己的管理?Lightmap机制呢?是一次加载两份,还是切换场景或更换?Lightmap没有卸载?加载场景时使用过吗?LoadSceneMode.Additive,导致场景累加载,资源不卸载?
Lightmap引用数很高,看看是哪些脚本索引住了,相应的组件是否一直停留。卸载时应清空索引。
这个窗口把GameObject和Monobehaviour相互引用的关系已经显出来了,不是直接引用,真的很复杂,很难找到。Unity给的专门的MemoryProfiler试试,比较清楚。
感谢Prin@UWA问答社区提供答案,欢迎转社区交流:
https://answer.uwa4d.com/question/6050a8d3cfa35d5b53669b10
Script
Q1:Unity 2020.2.1 Hub下载的SDK、NDK、JDK和BuildTools打包错误。
相关错误提示中没有提到有价值的信息。
经过验证:streammingAssets文件有680个限制(包括),超过就不能打包,带后缀名也没关系。不知道是不是个人版的限制。
A1:应该没有,测试了上万个文件,没问题。
感谢郑骁@UWA问答社区提供答案
A二、可以勾选Custom Gradle properties template,在文件中把unityStreamingAssts=.unity3d*STREAMING_ASSETS*改为unityStreamingAssets=.unity3d,就可以了。
如果需要特殊文件类型不压缩,自行添加,以逗号“, ”隔开。如unityStreamingAssets=.unity3d, .bundle。
U3D从2020.2.3开始修改了aaptOptions 的打包参数,aaptOptions的数组最大是255。
aaptOptions { noCompress = [’.ress’, ‘.resource’, ‘.obb’] + unityStreamingAssets.tokenize(’, ') ignoreAssetsPattern = “!.svn:!.git:!.ds_store:!.scc:.:!CVS:!thumbs.db:!picasa.ini:!*~” } *PACKAGING_OPTIONS*
感谢刘冉@UWA问答社区提供了回答
Q2:请教下如果希望streamingAssets下的都不压缩,文件又都没后缀,要怎么写呢?
A:由于U3D 2020.2必须使用unityStreamingAssets变量,所以需要你把工程导出,然后修改aaptOptions,让全部文件不压缩。
参考:https://developer.android.google.cn/reference/tools/gradle-api/4.1/com/android/build/api/dsl/AaptOptions
感谢刘冉@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5ffd97b510a17c6c2b09d9f1
封面图来源:Unity Interactive Grass
可用在Unity项目的可交互的草,会在进入场景时将Unity原生的草替换成自己生成的Mesh。
https://lab.uwa4d.com/lab/5b590fe1d7f10a201fe10467
今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)