您的位置:首页 > 移动开发 > Unity3D

unity手游优化总概

2016-12-20 08:41 225 查看
体积小、功耗小、带宽小

在开发移动游戏时,我们可以借助一些性能优化方法来提高游戏性能,改善画面质量。

用户可以在一下几个方面优化:

1.资源方面(游戏中使用美术资源)

动态物体:

游戏主角(1500),怪物,NPC

^控制面片数量300-2000面片

去掉细节,节省面片数量

^控制skinned mesh render 为1个

控制材质数量 1-3个

控制骨骼数量 小于30根 (pc 15-60)

静态物体

一般静态物体(控制网格顶点数少于500个)

标记为static

Static Batching

Animation组件:如果不需要,尽量不要附加

自带地形

控制地形的分辨率

地形高度图尺寸小雨257

地形纹理中尽量使用少的混合纹理数目(尽量不要超过4个)

纹理数据

纹理格式

尽量采取压缩格式(3D硬件芯片)

纹理尺寸(长宽小于1024,同时应该尽量小,够用就好)

建议使用Mipmap(虽然有可能会增加程序的大小,但会提高渲染效率)

音频数据

播放时间长(背景音乐)

可以使用.ogg或.mp3的压缩文件格式

播放时间短

可以使用.wav或.aif格式的未压缩格式

2.引擎方面(优化选项)

灯光设置:在满足效果的前提下,控制场景中,光源的个数,尽量不要添加冗余光源。

光源设置:控制important光源的数目(尽量1个或干脆没有)个数越多,drawcall越多

pixel light count(1-2个)

相机设置:设置合理的裁剪平面

粒子效果:建议小于200个

每个例子发射器所发射不超过50个

粒子大小,尽量小(对于非常小的粒子,在其粒子纹理中可以去除Alpha通道)

物理引擎:

碰撞体控制(尽可能的使用Sphere Colloder和Box Collider,尽量避免使用Mesh Collider)

渲染优化

尽可能的避免使用Alpha Test和Alpha Blend

* Alpha Test的性价比 比较低,可能的话,使用Alpha Blend代替

使用Alpha Test和Alpha Blend的像素数降至最低

DrawCall Batching

unity在渲染时,可以将一些物体合并,从而可以使用一个DrawCall来渲染他们,这就称为DrawCall
Batching

理论上讲,unity batching的物体越多,就会得到更好的渲染性能。

Static Batching

针对静态物体进行Batching

对几何数据的大小没有限制

使用后会额外的增加内存开销来存储Batch后的数据。

Dynamic Batching

对于相同的动态物体,unity会自动对其进行Batching。

纹理合并Texture Patching

遮挡剔除(Occlusion Culling)

3.代码方面(优化代码)





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: