如何降低无效的物理开销

如何降低无效的物理开销

1)如何降低无效的物理开销
​2)EventSystem.Update如何优化比较合适
3)如何定位UWA报告中检测到的Standard Shader问题
4)如何定位在UWA AssetBundle检测中看到n/a的网格问题


这是第298篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)

Physics

Q:如果Unity没有用到物理模块部分,如何将这部分关闭?以及是否可以动态开关?

A1:以下供参考:
Physics.autoSimulation = false;
Physics.autoSyncTransforms = false;//不用NGUI或者Raycast可关闭

感谢萧小俊@UWA问答社区提供了回答

A2:可以选择动态关闭,也可以直接关闭Physics设置里面的Auto Simulation,如果用到射线检测或者NGUI,需要把下面的Auto Sync Transforms勾选。

感谢小ben@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/6285b2a7b87a4573515d6387


UGUI

Q:请问EventSystem的优化怎么下手比较合适?对EventSystem的性能优化有何建议?

A1:EventSystem的优化可以参考这篇文章:https://networm.me/2019/10/06/unity-ugui-eventsystem-optimization/

感谢小ben@UWA问答社区提供了回答

A2:规划一下Canvas,只有需要检测才需要挂上GraphicRaycaster组件。然后EventSystem中的大部分性能可能是点击之后触发的事件造成的,并不能算EventSystem的,需要单独看一下触发的代码。

感谢萧小俊@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/6285b420b87a4573515d64fb


Shader

Q:请问在UWA报告中看到Standard Shader,该如何定位问题?

A:Standard Shader出现的原因,一般是导入的FBX模型中或者Unity自身生成的一些3D对象使用了自带的Default Material,从而依赖了Standard Shader。可以结合UWA在线AssetBundle检测工具排查是哪个AssetBundle包中哪些资源引用了Standard Shader,如下图:

在找到了是哪个FBX资源带有Default Material后,可以用Unity提供的AssetPostprocesser类的回调函数对其进行剔除,如下图,是一个简单的做法。

感谢Faust@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/628b39e3b87a45735161a84a


AssetBundle

Q:在UWA 在线AssetBundle检测结果中看到n/a的网格,请问如何定位问题?

A:可以尝试在Asset Studio中查看相关AssetBundle的具体资源。

一般AssetBundle中的资源都是已命名的,检测到的未命名的资源通常是脚本生成的Asset中的一部分。

可以用Asset Studio查看这些未命名资源和哪些Asset相关,进而加以定位。

感谢宗卉轩@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/628b3807b87a45735161a5dc

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)