Unity关于性能方面的问题

Unity关于性能方面的问题,第1张

1、硬件支持优化

(1)平台设置优化

减少FPS,在ProjectSetting-> Quality中的

VSync Count 参数会影响你的FPS,EveryVBlank相当于FPS=60,EverySecondVBlank = 30;

这两种情况都不符合游戏的FPS的话,我们需要手动调整FPS,首先关闭垂直同步这个功能,然后在代码的Awake方法里手动设置

FPS(ApplicationtargetFrameRate = 45;)

降低FPS的好处:

1)省电,减少手机发热的情况;

2)能都稳定游戏FPS,减少出现卡顿的情况。

当我们设置了FPS后,再调整下Fixed timestep这个参数,

这个参数在ProjectSetting->Time中,目的是减少物理计算的次数,来提高游戏性能。

(2)文件格式优化

1)Android 更新不透明贴图的压缩格式为ETC 4bit,因为Android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式,但他们都兼容ETC格式。iOS上尽量使用PVRTC。

2)对于透明贴图,我们只能选择RGBA 16bit 或者RGBA 32bit。

      3)图集大小最好不要高于1024,否则游戏安装之后、低端机直接崩溃、原因是手机系统版本低于22、超过1000的图集无法读取、导致。22 以上没有遇见这个情况。注意手机的RAM 与 ROM、小于 512M的手机、直接放弃机型适配。

(3)Unity功能使用优化建议

Unity屏幕特效、动态的pixel光照计算(如法线)、实时的阴影,能找到替代方案就找替代方案。

2、渲染优化

(1)模型设置优化

1)合并材质球unity 3d中每倒入一次模型就多一个材质球,可我的这些模型都是共用一张贴图的就想共用一个材质球,所以每次都要删除再附上,很麻烦。怎么才能合并这些材质球?采用TexturePacking吧

1、遍历gameobject,取出material,并根据shader来将material分类

2、调用Unity自带的PackTextures函数来合并每个shader分类中的material所对应的textures(PackTextures函数有缺陷,不过可以将就用)

3、根据合并的大的texture来更新原有模型的texture、material已经uv坐标值。

需要注意的是:需要合并的纹理应该是物体在场景中距离相近的,如果物体在场景中的距离较远,

则不建议合并纹理,因为这样做很有可能非但起不到优化的作用,反而降低了运行效率。 

2)mesh合并 分为2种方式合并

1自带的合并必须勾选静态。

    2 脚本合并

优化建议(1)角色材质数2-3个 最多不要超过5个。可以采取2+3模式,2为主 3位辅助。

    (2)骨骼数量最好控制在30

    (3)面片数量根据实际需求做一定删减。比较低的控制在2000以下。

             (4)静态物件不需要添加Animation Component

(5)UV值范围尽量不要超过(0, 1)区间

 (6)地形长宽均尽量小于257。这是因为地形太大,会造成大量顶点数据,给你的内存带宽造成一定的影响,在目前的ios设备中,内存带宽是非常有限的,需要尽量节省。同时,如果用Unity自带的地形,一定也要使用Occlusion Culling,因为Unity的刷地形工具虽然方便,但却是framekiller,刷过之后,你会发现drawcall增加的非常多。混合纹理数量不要超过4。地形的混合 *** 作是很耗时的,应该尽量避免。能合并的纹理尽量合并。

(2)渲染批次优化

3、代码编程优化

Application类位于UnityEngine下,用于访问应用程序在运行时的一些数据。这个类不包含实例属性和实例方法,这就意味着在脚本中我们直接通过Application类来调用其静态的属性静态方法来控制程序运行时的数据。

虽然以上罗列的属性和方法官网API都有详细的介绍,但这里我用表格的形式展现出这些方法和属性,阅读起来更直观,同时我将常用的放在前面,功能相似的属性和方法放在一块,这样好做一个区分和比较。

第一篇文章就这样写完了,虽然没有写什么实质性的内容,但还是感觉蛮有成就感的,最重要的是已经迈出了第一步,敢写敢做,立马行动,以前知道写博客文章很重要,但是迟迟没有行动,所以说路在脚下,要敢于往前走。还有就是学会了使用markdown,一开始用的时候感觉挺不适应的,但慢慢写下来,熟悉了语法,觉得还是挺好用的,好处不用说,谁用谁知道。

今天只是一个开始,坚持!继续加油!

以上就是关于Unity关于性能方面的问题全部的内容,包括:Unity关于性能方面的问题、Unity API——Application类的详解(一):列举属性和方法、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9533577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存