原文地址: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. Android系统架构剖析(一)

          要说剖析,可能这个词可能用的太大了,以下对Android系统的介绍也就是从我个人理解来说吧.       以前有人问我,Android是什么?当时这个问题问的我真的蒙了,我就简单的回了一下 ...

  2. SQL中的LIKE中用参数化查询

    今天终于学会怎么在like中用参数化查询啦..哈哈..再也不用担心sql注入了...  

  3. 如何进行SVN数据迁移并保存版本号数据

    如何从一台服务器192.168.8.2迁移到另一台服务器192.168.8.30进行SVN数据迁移并保存版本号数据 工具/原料   SVN 方法/步骤   1 打开远程服务,连接192.168.8.2 ...

  4. verilog 条件编译命令`ifdef、`else、`endif 的应用

    [摘自夏宇闻<verilog设计教程>]一般情况下,Verilog HDL源程序中所有的行都将参加编译.但是有时希望对其中的一部分内容只有在满足条件才进行编译,也就是对一部分内容指定编译的 ...

  5. ControlExtensionTest(一)

    #ifndef __CCCONTROLSCENE_H__ #define __CCCONTROLSCENE_H__ #include "cocos2d.h" #include &q ...

  6. [gulp入门]gulp-connect浏览器自动刷新

    LiveReload可以理解为即时刷新,在前端开发中,开发者在编写或调试html/js/css代码后需要从编辑器切换到浏览器,再刷新浏览器才能看到页面变化,这种频繁的操作在一定程度上影响了工作效率,而 ...

  7. C#通过“委托和事件”的方式实现进程监控并与“普通方式”对比

    今天重新学习了一下观察者模式,对我的思路产生了启发.进程监控程序之前写过几个,这回换一种思路,改用委托和事件来实现.我已经用序号将关键的几步标注,方便大家理顺思路.代码如下: using System ...

  8. python学习笔记(14)--爬虫下载漫画图片修改版

    说明: 1. 2017.3.12,周六从中午吃完包子12点多折腾了一下午加一个晚上,试了4个网站的爬虫,发现都不能下载!甚至前几天测试能下载的都不能用了! 2. 到晚上发现煎蛋网的可以用了,立即试了下 ...

  9. HTML5 Canvas 梦幻的文字飞扬动画教程

    之前为大家介绍了一款HTML5/CSS3 3D文字特效 文字外翻效果.今天为大家带来的是html5 canvas实现的文字漂动动画效果.画面非常梦幻. 在线预览   源码下载 实现代码如下: html ...

  10. 一款由jQuery实现的手风琴式相册图片展开效果

    之前我们有分享过很多jQuery手风琴样式的菜单,比如CSS3手风琴下拉菜单.今天要分享的jQuery手风琴效果很特别,它是手风琴样式的相册图片展开效果.我们只需点击图片缩略图即可展开当前的图片,并将 ...