移动平台瓶颈

体积小 芯片要求改

功耗小 影响计算系能

带宽小 传输方面受限

性能优化

资源方面

美术方面

自带地形(地形是非常占用资源的)

a.控制地形的分辨率

b.地形高度图尺寸小于257

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

纹理数据

a.纹理格式 尽量采取压缩格式

b.纹理尺寸 长宽小于1024 同时应该尽量小够用就好

c.尽量使用Mipmap 虽然Mipmap 有可能会增加程序的大小,但会提高渲染效率。

动态物体

a.控制面片数量 300-2000面片

b.控制Skinned Mesh Render 为1个

c.控制材质数量为1-3个

d.控制骨骼数量 小于30根

静态物体

a.控制网格顶点数量 小于500个

b.标记为Static

c.Static Batching

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

音频数据

a.播放时间长的音乐如背景音乐 可以使用.Ogg 或.MP3格式的压缩文件格式

b.播放时间段的音乐 可以使用.WAV或.aif格式的未压缩格式

引擎方面优化

光源设置:

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

b.控制Important光源的数目,尽量1个或干脆没有,个数越多,drawcall越多。

c.Pixed Light Count 1-2个

相机设置

a.设置合理的剪切平面,可根据不同的场景进行修改

粒子特效

a.频幕上的粒子总数,建议小于200个粒子,

b. 每个粒子发射器所发射的粒子总数,建议不超过50个

c.粒子大小 如果可以的话,粒子的size应该尽量小,对于非常小的粒子,在其粒子纹理中可以去除alpha通道

物理引擎优化

a.碰撞题控制 尽可能的使用Sphere Collider 和Box Collider,尽量避免使用Mesh Collider

渲染优化

a.尽可能避免使用Alpha Test和Alpha Blend。Alpha Test的性价比比较低,可能的话,使用​Alpha Blend来代替​Alpha Test

b.将使用Alpha Test和Alpha Blend的像素数降至最低​​

c.DrawCall Batching:unity 在渲染时,可以将一些物体合并,从而可以只用一个DrawCall来渲染他们,这称为DrawCall Batching。理论上讲unity Batching的物体越多,则会得到更好的渲染性能。​

d.StaticBatching:静态合并。针对静态物体进行Batching,对几何数据的大小没有限制。原理:静态VertexBuffer+动态IndexBuffer,将同种材质的物体合并在一个大的VertexBuffer中,在运行时,通过视锥剪切来动态的改变IndexBuffer。

注意:使用StaticBatching后会额外的增加内存开销来存储Batch后的数据

e.Dynamic Batching:动态合并。对于相同的材质的动态物体,unity会自动对其进行Batching。

原理:动态VertexBuffer+动态IndexBuffer

注意:目前仅支持小于900顶点的网格物体

缩放物体无法与非缩放物体进行Batch

f.纹理合并 Texture Batching

遮挡剔除(Occlusion Culling)

代码方面优化

通过编程的方式,来提高代码的运行性能

a.对于有的函数,则可以每个几帧 执行一次

b.通过使用InvokeRepeating函数实现定时重复调用,比如,启动0.5s后每隔1s执行一次DoSomeThing

c.尽量少使用临时变量,特别是在Update() OnGUI()等实时调用的函数中

d.定时进行垃圾回收

e.优化数学运算,尽量避免使用float,而用

int,特别是在手机游戏中,尽量少用复杂的数学函数,比如sin,cos等函数。改除法为乘法,比如0.5f*a而不是a/2.0f

U3d 手游优化概述的更多相关文章

  1. U3D手游《苍穹变》性能优化经验谈

    4月11日,由unity公司举办的Unite 2016大会在上海正式举行,在4月12日的案例分享专场会议上,天神互动U3D高级开发工程师康凯以手游<苍穹变>为例讲述了3DMMOARPG游戏 ...

  2. 真正从0开始用Unity3D制作类战地2玩法的类龙之谷、王者荣耀的手游(暨全平台游戏)

    如题,(从2017年10月18日开始)正在利用业余时间研发一款神泣Shaiya2手游,引擎用Unity3D. 原因主要有2点: 对神泣太多感情,希望能做点什么来纪念乃至留下神泣这款网游: 时机已到,是 ...

  3. 如何快速优化手游性能问题?从UGUI优化说起

    WeTest 导读   本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法.   在之前的文 ...

  4. 手游录屏直播技术详解 | 直播 SDK 性能优化实践

    在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...

  5. 斗牛app上架应用宝、牛牛手机游戏推广、百人牛牛app应用开发、棋牌游戏上传、手游APP优化

    联系QQ:305-710439斗牛app上架应用宝.牛牛手机游戏推广.百人牛牛app应用开发.棋牌游戏上传.手游APP优化 iOS开发iPhone/iPad平台安卓手机软件开发机型覆盖范围 超过113 ...

  6. 七个要素帮你打造现象级手游!优化程度堪比《QQ飞车》

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由WeTest质量开放平台团队发表于云+社区专栏 作者:申江涛,腾讯互娱客户端工程师 商业转载请联系腾讯WeTest获得授权,非商业转载 ...

  7. 手游性能优化之深入理解Texture Compression

    http://gad.qq.com/article/detail/7154875 一.引子 手游项目开发日常里,经常有美术同学搞不清Photoshop制图软件与Unity3D游戏引擎之间的图片asse ...

  8. 动作手游实时PVP帧同步方案(客户端)

    1.概述 1.1.基于UDP的帧同步方案 在技术选型方面,之所以选择帧同步方案,在Kevin的一篇介绍PVP帧同步后台实现的文章中已经做了详细叙述,这里简单摘要如下: 高一致性.如果每一帧的输入都同步 ...

  9. GJM :动作手游实时PVP 帧同步(客户端)[转载]

    原帖地址:http://gad.qq.com/article/detail/7171195 原文作者:唐声福  原帖备注:版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 1.概述 1.1.基于U ...

随机推荐

  1. 16.java.lang.InterruptedException

    java.lang.InterruptedException 被中止异常 当某个线程处于长时间的等待.休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常 ...

  2. 5.java.lang.IndexOutOfBoundsException(数组下标越界异常)

    数组下标越界异常 查看调用的数组或者字符串的下标值是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中 ...

  3. windows环境中mysql忘记root密码的解决办法

    原文地址:http://www.cnblogs.com/linuxnotes/archive/2013/03/09/2951101.html windows下重置Mysql Root密码的方法mysq ...

  4. Delphi中的Rtti函数

    TTypeKind,类型类别,tkclass,tkinteger,tkstring等.类,属性都是一种类型. ttypedata,是一个record包括ttypekind.是一个类的描述.TTypeK ...

  5. 在mac上访问自带服务器权限问题

    在开发中,有时候我们需要自己的在电脑上做一些网络相关的测试功能,因此,我们必须在本地上模拟网络环境. 在模拟网络环境中,经常会遇到访问权限的问题.现在我就把自己的解决办法写出来.我用的模拟服务器站点是 ...

  6. WebStorm 7.0 注冊码

    经測试 WebStorm 6 7均能够使用例如以下注冊码,简直就是神key啊! WebStorm 6.0 7.0 注冊码 User Name: EMBRACE   License Key: ===== ...

  7. [MAC Eclipse] Eclipse for MAC 中文乱码的解决办法

    笔者将在windows下的eclipse写的代码拷贝到MAC下,发现中文会出现乱码. 最初笔者遇到这个问题的时候,在网络上寻找了解决办法,出来的第一个网页(http://blog.csdn.net/w ...

  8. hadoop搭建杂记:Linux下不同linux主机之间文件copy的scp命令

    不同的Linux之间copy文件常用有3种方法: 不同的Linux之间copy文件常用有3种方法: ①ftp 就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的程序来进行文件 ...

  9. Android 汉字转拼音之JNI篇

    package com.tool.hz2py; import android.os.Bundle; import android.app.Activity; import android.view.M ...

  10. 本地环境下 WordPress 环境搭建与安装

    本地环境:Ubuntu 14.04 使用软件: WordPress 4.1.1 中文优化版 EasyEngine 安装步骤: 安装 LNMP 环境; wget -qO ee rt.cx/ee & ...