您当前的位置: 首页 >  unity
  • 6浏览

    0关注

    193博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity项目性能优化整理

我寄人间雪满头丶 发布时间:2022-05-07 17:55:36 ,浏览量:6

1.Mono下减少foreach使用,频繁调用容易触及堆上限,导致GC过早触发,出现卡顿现象。尤其是Update中如果非必要不要使用foreach。会产生GC Alloc。

2.频繁修改的string应使用StringBuilder。

3.gameObject.tag会在内部循环调用对象分配的标签属性以及拷贝额外的内存,推荐使用gameObject.CompareTag(“xxx”)来代替.tag。

4.贴图压缩: (1).能使用九宫格就不要使用大图。 (2).可以上tinypng网站对原始图片进行压缩。 (3).如果有镜头拉远需求可以通过使用不同尺寸图片进行压缩(内存换性能,lod)。 (4).图片尺寸尽量使用2的整数幂,长宽比为正方形。 (5).UI、2D场景可以把GenerateMipMaps这个设置去掉。这个功能用于纹理根据相机距离不同显示精度不同,2D游戏和UI不需要。 (6).可以压缩图片格式减小大小。自动压图工具。 在这里插入图片描述

5.内存回收 (1).异步加载场景防止卡顿。 (2).减少Instantiate和Destroy,合理使用对象池。 (3).对于使用Resources.Load或者AB包等方式动态加载生成的游戏对象,回收时不只是使用Destroy,还要注意回收Asset。

6.UI相关 (1).不需要射线检测的UI取消勾选raycastTarget。

7.使用Unity工具Profiler进行性能分析。利用BeginSample/EndSample可以对具体代码块进行性能分析。

8.Log也会消耗性能,发布时注意关闭。一行代码关闭Log。

9.对于骨骼动画的模型可以通过勾选OptimizeGameObject优化性能。 要注意骨骼朝向问题

在这里插入图片描述 10.LOD、遮挡剔除、静态合批,动态合批。

11.减少调用Camera.main。 Camera.main实际为GameObject.FindGameObjectsWithTag(“MainCamera”)。不要频繁调用GetComponent。

12.能用Vector3.zero这种预设好的就不要new Vector(0,0,0),会浪费内存。

13.减少使用透明物体以减少overdraw。

14.减少实时光照,用光照烘焙代替。

后续会持续更新。

相关文章

Unity游戏项目常见性能问题 深入浅出聊Unity3D优化:从Draw Calls到GC

关注
打赏
1648518768
查看更多评论
立即登录/注册

微信扫码登录

0.0470s