为什么场景中没有刚体更无碰撞事件但仍有较高物理耗时

为什么场景中没有刚体更无碰撞事件但仍有较高物理耗时

1)为什么场景中没有刚体更无碰撞事件但仍有较高物理耗时
2)如何优化与Camera相关的多个RT
3)解析Unity Profiler.data的思路
4)血条信息用哪种方案性能更好


这是第435篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com
UWA QQ群:793972859

Physics

Q:我有个疑问:为什么GOT性能报告和Profiler里看物理模块耗时都很高?但其实这时候场景里已经没有刚体了,按理说不会发生碰撞,只有在代码里用了Raycast判断子弹命中,后来我把设置里的物理模拟关掉,又打了包,物理耗时确实降了下来,看子弹还是能正常命中(因为是代码调的),看粒子里的碰撞也还是能生效。

我不明白的是:之前那么高的物理耗时是在做什么?可能是什么导致的?是有一些我没留意到的地方用了物理导致的,还是说Unity机制如此?(Unity版本2022.3.59)

A:的确,当前Unity版本的机制就是这样,很多时候必须要关闭掉物理模拟(指把Simulation Mode改成Script)才可以节省耗时。具体机制是场景中只要Static Collider数量大于0且没有关闭物理模拟就会有耗时,和场景中有没有刚体、有没有发生碰撞事件无直接关联。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/684688ea682c7e5cd61bfaa0


Rendering

Q:当加载Addtive场景时,有两个Main Camera,Camera的RT也会有两份,请问这个有什么好办法嘛?

还有一个问题是正常场景只有一个Camera,却可能有7、8个和Camera相关的RT,请问有没有可以优化的方案?

A:针对Additive的问题,如果是两个视角不一样的相机,那确实没有办法,都会生成对应的RT,除非视角位置一致,那设计场景的时候就只用一个Camera。

场景只有一个相机的时候就会有7-8种RT的问题,这些是URP自动生成的,_CameraDepthTexture需要关闭CopyDepth。如果有用到一些后处理或者渲染Feature必须用Depth,关闭CopyDepth也会出现_CameraDepthTexture。

  • _CameraColorAttachmentB是URP代码生成的,如果真的用不到,可以改代码避免生成。
  • _AfterPostProcessTexture这个要看渲染情况是不是真的用到了,不太确定是不是可以去除。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/68468a21682c7e5cd61bfaa1


Editor

Q:请问有没有解析Unity Profiler.data的思路?主要想借鉴一下,做一些简单的项目自动化参数监控。

A:可以看下这篇文章:
https://blog.csdn.net/weixin_43275620/article/details/132027578

Unity 2019版本应该不支持,需要用一些特殊的方案(比如反射)做类似的事情,网上基本没有公开的信息。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/68468ab4682c7e5cd61bfaa2


UI

Q:请教下,这种每个玩家上面单独的血条信息,一个玩家是走2个DrawCall性价比高,还是3个DrawCall的性价比高?

  • 2个DrawCall:图标资源(1DrawCall)+ 所有文本(1DrawCall),2个单独的Canvas;
  • 3个DrawCall:图标资源(1DrawCall)+ 固态文本(1DrawCall)+ 距离文本(1DrawCall)。

其中距离信息基本上每帧都会变动,常规场景内玩家数量在15-40之间,如果采用3个DrawCall的方案,可能这块的总数要占到120,感觉就有点太高了。

A:这两个方案主要涉及的不光是渲染这边DrawCall的开销,还涉及到UI更新的开销。实际两者哪个更好可能是受这些UI元素的复杂度影响的(如文本量),因此还是建议结合项目场景实际情况,在测试场景中堆叠足够的数量后在真机上进行相关耗时的对比。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/68468c41682c7e5cd61bfaa3

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859