原文地址:http://blog.csdn.net/molti/article/details/8520418

性能优化需要从多方面入手,大家在项目中遇到的问题还是很普遍的,欢迎大家补充。

图形方面:
1. AlphaBlen优于AlphaTest。乍一看,以为是说错了,之前在为性能优化寻找突破点的时候,以为的在u3d的官方文档中看到,说是移动设备为AlphaBlen做了非常多的优化,而使用AlphaTest返回会降低性能,和传统的端游图形有很大不同哦。

内存/显存的占用:
1. 尽力少单场景复杂度。RPG游戏做好场景切割,无论是页游的数据分布加载还是移动设备的小内存限制,都需要做这件事。

游戏逻辑方面:
1. 在Behavior的Update()中:
a. 只做必要的逻辑 
b.如果一定要频繁检查,可以每隔几帧做一次调用: void Update(){ if( 0 == Time.frameCount%5) DoYourLogic(); }

2. 定时器
InvokeRepeating("Method name", 0.5, 1.0);

3. 离散的回收垃圾。
void Update() { if(Time.frameCount % 30 == 0) { System.GC.Collect(); } }
稳定的帧速优于大部分很快,偶尔卡一下:
如果我们不离散的做垃圾回收的工作,就会在一些时间点由系统集中的做垃圾回收的操作,当数量很大是,比如话费了30毫秒,那我们的游戏画面就会明显的卡一下。

4. 运行时尽量减少 Tris 和 Draw Calls.
看到大家说要尽力做到:Tris 保持在 7.5k 以下,Draw Calls 保持在 20 以下。
如果场景复杂度很高,比如农场类的游戏,会有特别庞大的建筑和动物类型,因为贴图数量激增,材质数量无法避免的增加,DrawCall会很高,那就尽量避免可同时看到的对象数量吧,摄像机尽量拉近。

5. Mesh Compression

6. 避免大量使用 Unity 自带的 Sphere 等内建 Mesh
U3d中的Mesh三角形数量太多,比如一个矩形的片,用了100个顶点。 建议自行制作简单的mesh来使用,比如用4个顶点做矩形,如果是用mesh做物理拾取,可以用八边形(或者是六边形只要你喜欢)代替圆形。

7. 避免在每帧更新时调用GetComponent
在Awake()中,获得组件并存在成员变量中,以便随时取用. 比如UIButton,Translate等。

8. 减少固定增量时间
将固定增量时间值设定在0.04-0.067区间(即,每秒15-25帧)。您可以通过Edit->Project Settings->Time来改变这个值。
这样做降低了FixedUpdate函数被调用的频率以及物理引擎执行碰撞检测与刚体更新的频率。
如果您使用了较低的固定增量时间,并且在主角身上使用了刚体部件,那么您可以启用插值办法来平滑刚体组件。

9. 避免不必要的分配内存。
为较少垃圾回收的开销,我们要尽可能的减少不必要的内存分配。
使用对象池:比如飞机发射的子弹,建筑上的收取金币的图标,当我们不再使用它时,将它放入对象池并把它移到一个很远的地方,看不到就好。

u3d性能优化的更多相关文章

  1. u3d 性能优化

    http://blog.csdn.net/candycat1992/article/details/42127811 写在前面 这一篇是在Digital Tutors的一个系列教程的基础上总结扩展而得 ...

  2. U3D开发性能优化笔记(待增加版本.x)

    http://blog.csdn.net/kaitiren/article/details/45071997 此总结由自己经验及网上收集整理优化内容 包括: .代码方面: .函数使用方面: .ui注意 ...

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

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

  4. [Unity优化] Unity CPU性能优化

    前段时间本人转战unity手游,由于作者(Chwen)之前参与端游开发,有些端游的经验可以直接移植到手游,比如项目框架架构.代码设计.部分性能分析,而对于移动终端而言,CPU.内存.显卡甚至电池等硬件 ...

  5. Unity 绘图性能优化 - Draw Call Batching

    Unity 绘图性能优化 - Draw Call Batching Unity官方链接:http://docs.unity3d.com/Manual/DrawCallBatching.html 转载请 ...

  6. 移动平台Unity3D 应用性能优化

    WeTest 导读 做了大概半年多VR应用了,VR由于双眼double渲染的原因,对性能的优化要求比较高,在项目的进展过程中,总结了一些关于移动平台上Unity3D的性能优化经验,供分享. 一.移动平 ...

  7. U3D内存优化

    原创文章如需转载请注明:转载自风宇冲Unity3D教程学院                                                U3D内存优化   读了Hog关于内存管理文章 ...

  8. Unity 性能优化(力荐)

    开始之前先分享几款性能优化的插件: 1.SimpleLOD : 除了同样拥有Mesh Baker所具有的Mesh合并.Atlas烘焙等功能,它还能提供Mesh的简化,并对动态蒙皮网格进行了很好的支持. ...

  9. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

随机推荐

  1. 《Effective Java》读书笔记一(创建与销毁对象)

    No1 考虑用静态工厂方法代替构造器 静态工厂方法优势: 它们有名称,阅读性增强,如:BigInteger.probablePrime: 不必每次调用它们的时候都创建一个新对象: 它们可以返回原返回类 ...

  2. [hihoCoder] #1089 : 最短路径·二:Floyd算法

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 万圣节的中午,小Hi和小Ho在吃过中饭之后,来到了一个新的鬼屋! 鬼屋中一共有N个地点,分别编号为1..N,这N个地点之间 ...

  3. php excel类 phpExcel使用方法介绍

    phpExcel操作excel可以方便的加入图片,支持jpg gif png格式. 下载地址:http://www.codeplex.com/PHPExcel 下面是总结的几个使用方法 include ...

  4. [svc]lnmp一键安装脚本(含有np与mysql分离)

    基于lanny一键安装包:(含lnmp所需软件及配置文件) 安装nginx: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliy ...

  5. java NIO中的buffer和channel

    缓冲区(Buffer):一,在 Java NIO 中负责数据的存取.缓冲区就是数组.用于存储不同数据类型的数据 根据数据类型不同(boolean 除外),提供了相应类型的缓冲区:ByteBufferC ...

  6. SQLAlchemy的“缓存”问题导致的BUG

    问题描述: 最近做项目,遇到一个问题,两个项目操作同一个数据库,其中A项目用的pymysql链接操作数据库,B项目用的sqlalchemy,当我请求B项目中的一个接口,会通知A项目操作数据库,然后返回 ...

  7. Java日志 (zhuan)

    http://www.cnblogs.com/bird-li/p/4696662.html ************************************************* 日志对于 ...

  8. 修改mysql root账户登录密码

    打开mysql.exe(如果你配置了path的话,打开cmd即可)键入: mysqladmin -u root -p password [你的新密码][回车] 然后会要求你输入你当前的密码,就修改成功 ...

  9. 创建Ajax对象

    针对不同版本浏览器插件Ajax对象. <script> function createAjax(){ var request=false; //window对象中有XMLHttpReque ...

  10. maven项目install时候一直报错,检查Maven-javadoc-plugin声明错误(Java 8 配置Maven-javadoc-plugin)或者是:警告: @throws 没有说明

    在升级JDK至1.8之后,使用Maven-javadoc-plugin插件打包报错,[ERROR] Failed to execute goal org.apache.maven.plugins:ma ...