技术分享连载(八十三)-阿里云开发者社区

开发者社区> 开发与运维> 正文

技术分享连载(八十三)

简介:

性能

Q1:我用UWA GOT进行本地性能测试,在CPU的数据分析中发现,某些帧StackTraceUtility耗时特别高,这是什么原因导致的呢?
请输入图片描述

StackTraceUtility.XXX是Unity引擎的Log输出,可能是本身Debug.Log/LogError的调用输出,也可能是使用过程中引擎端出现了Warning/Error等信息而自动输出的。

该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。
https://answer.uwa4d.com/question/59ed93681b83b8df50804f6a


加载

Q2:我在Profiler中观察性能曲线,发现某一帧AssetBundle加载中,LockPersistentManager耗时比较大。请问这部分能否优化?

这说明当前帧或前几帧中存在较大量的资源在通过LoadAsync来进行加载,其本质是所加载的资源过大所致,对自身资源进行合理优化可降低Loading.LockPersistentManager的开销。另外,将异步加载换成同步加载,LockPersistentManager就不会出现了,但其总加载耗时是没有变化的,因为总加载量没变。

关于主要资源的加载优化,可参考如下链接:
Unity加载模块深度解析(纹理篇)
Unity加载模块深度解析(网格篇)
Unity加载模块深度解析(Shader篇)
Unity加载模块深度解析(动画片段篇)
UWA 六月直播季 | 6.8 移动游戏加载性能和内存管理全解析

该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。
https://answer.uwa4d.com/question/59eae0c4e0a5e637724a1572


制作

Q3:我在Unity 5.4.4f1下打出的AssetBundle无法加载,抛出以下错误,但是只是部分无法加载,平台是iOS ,打包参数有以下:
DeterministicAssetBundle;
DisableWriteTypeTree;
ChunkBasedCompression;
CollectDependencies;
CompleteAssets。
请输入图片描述

出现这个Log是因为项目的逻辑脚本序列化信息更新了,也就是资源的Typetree变化了。这种情况下,需要重新Build相应的AssetBundle,如果使用之前的AssetBundle,那么就会出现上述Log。

该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。
https://answer.uwa4d.com/question/59e8aa5fe02a95cc6d0c498a


性能

Q4:我在安卓真机上跑游戏,发现Profiler下的合批数据和PC或者iOS下的不一样,因此不确定Android的合批是否有效。如下图,左边的是Android的,右边的是PC的(iOS和PC基本一致),Android的Render.Mesh明显比PC和iOS的高好多。
请输入图片描述
我用的设备是魅族 mote2 Android版本 - 5.1
请输入图片描述
补上FrameDebug的数据,上下的Mesh数据都是一样的,也没有z-fighting的情况,因为都是间隔地渲的,同样的物体一个一个地渲出来。经过分析,Android上不能设置Graphics Jobs(在Player Settings里面),也是不断打包测试发现这个问题,想了解一下具体是什么原因呢?
请输入图片描述

Graphics Job目前在Android平台上是为Vulkan而设计的,也就是只有支持Vulkan设备的才会真正起作用。按照Unity原厂的说法,该选项在不支持Vulkan的Android设备上应该是没有效果的。

另外,Graphics Job和MultiThread Rendering并不建议同时使用,而且以目前的Android设备来说,建议只开启MultiThread Rendering一项即可。

该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。
https://answer.uwa4d.com/question/59e4510ce5b24a0754868985


制作

Q5:Unity 5.5.1版本下,Sprite Packer在iOS平台下RGBA PVRTC4打包图集失真非常严重(对单个的Sprite设置PVRTC4是正常的),参照了4.6.7版本是正常的,我想知道为什么呢?
请输入图片描述

确实可以复现。Unity 5.5 的PVRTC压缩有三档 fast/nomal/best,但都比Unity 4.7下的质量要差。找到一个官方的 issue ,说是 pvrtc 压缩工具(第三方)的Bug。

https://issuetracker.unity3d.com/issues/textures-rgba-compressed-pvrtc-2-slash-4bit-texture-with-compression-quality-set-to-to-best-slash-normal-is-less-detailed-than-fast

有人在这个帖子里提到,在 Windows 下尝试用 4.7 的 pvrtextool.exe 替换了 5.x 的,暂时解决了这个问题,建议也尝试一下。






原文出处:侑虎科技
本文作者:admin
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章