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扭转了,导致加载出错。

目前咱们这里有两种解决计划,仅供参考:

  1. 就是依照Unity官网说的,在Schema上禁用掉CRCCheck;然而这种形式在校验Bundle下载的完整性和正确性上可能会有些问题。
  2. 热更新流程上退出Hash和CRC的双重检测,检测到其中任一值有变动就认定该Bundle须要更新,并重载最新的Catalog文件;同样这样做的问题是有可能会平白减少很多Bundle下载,即使这个Bundle的内容并无更新。

感激Hybrid_8974@UWA问答社区提供了答复

Texture

Q:想要实现网格线的成果,然而远处的线会花,是什么起因?这是一个正方形的Mesh,而后应用UV的缩放铺满n个小格子,图片设置成了Repeat,并且敞开了Mipmap。然而还是会呈现远处的线花了,有什么解决方案吗?

A1:把Texture的Aniso Level值调高试试。

Aniso Level就是用于低角度看高空的。另外把Filter Mode设置成Trilinear,就不会呈现一段一段的成果了,就是开销比拟大。

感激Prin@UWA问答社区提供了答复

A2:按下图调整后,问题解决了:

感激题主halm@UWA问答社区提供了答复

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问答社区提供了答复

Rendering

Q:如下图,为什么Lightmap在Profile里会显示有反复的呢?我看每一个都是40MB,有什么方法优化吗?而且对应的援用脚本里,没有发现对Lightmap的援用。

A:看起来每张Lightmap都加载了两份。题主有没有写本人治理Lightmap的机制呢?是一次就加载两份还是在切换场景或者更换Lightmap的时候没有卸载掉?加载场景时有没有应用LoadSceneMode.Additive,导致场景累加式加载,不卸载之前的资源?

Lightmap的援用数很高,看看是被哪些脚本索引住了,相应的组件是不是始终驻留。在该卸载的时候要把索引置空。

这个窗口把GameObject和Monobehaviour相互援用关系都显示进去了,不是间接的援用,的确比较复杂不好找。能够用Unity给的专门的MemoryProfiler试试,绝对分明一点。

感激Prin@UWA问答社区提供了答复

Script

Q1:Unity 2020.2.1+Hub下载的SDK、NDK、JDK和BuildTools打包谬误。

相干谬误提醒中没有一条提到有价值的信息。

通过验证:streammingAssets文件有680(蕴含)个限度,超过就打不出包了,带不带后缀名都没关系。不分明是不是个人版的限度?

A1:应该是不会的,上万文件都测试过,没问题。

感激郑骁@UWA问答社区提供了答复

A2:你能够勾选Custom Gradle properties template,在文件中把unityStreamingAssets=.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问答社区提供了答复

封面图起源: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(原群已满员)