u3d性能优化
原文地址: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性能优化的更多相关文章
- u3d 性能优化
http://blog.csdn.net/candycat1992/article/details/42127811 写在前面 这一篇是在Digital Tutors的一个系列教程的基础上总结扩展而得 ...
- U3D开发性能优化笔记(待增加版本.x)
http://blog.csdn.net/kaitiren/article/details/45071997 此总结由自己经验及网上收集整理优化内容 包括: .代码方面: .函数使用方面: .ui注意 ...
- U3D手游《苍穹变》性能优化经验谈
4月11日,由unity公司举办的Unite 2016大会在上海正式举行,在4月12日的案例分享专场会议上,天神互动U3D高级开发工程师康凯以手游<苍穹变>为例讲述了3DMMOARPG游戏 ...
- [Unity优化] Unity CPU性能优化
前段时间本人转战unity手游,由于作者(Chwen)之前参与端游开发,有些端游的经验可以直接移植到手游,比如项目框架架构.代码设计.部分性能分析,而对于移动终端而言,CPU.内存.显卡甚至电池等硬件 ...
- Unity 绘图性能优化 - Draw Call Batching
Unity 绘图性能优化 - Draw Call Batching Unity官方链接:http://docs.unity3d.com/Manual/DrawCallBatching.html 转载请 ...
- 移动平台Unity3D 应用性能优化
WeTest 导读 做了大概半年多VR应用了,VR由于双眼double渲染的原因,对性能的优化要求比较高,在项目的进展过程中,总结了一些关于移动平台上Unity3D的性能优化经验,供分享. 一.移动平 ...
- U3D内存优化
原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 U3D内存优化 读了Hog关于内存管理文章 ...
- Unity 性能优化(力荐)
开始之前先分享几款性能优化的插件: 1.SimpleLOD : 除了同样拥有Mesh Baker所具有的Mesh合并.Atlas烘焙等功能,它还能提供Mesh的简化,并对动态蒙皮网格进行了很好的支持. ...
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
随机推荐
- 32个最热CPLD-FPGA论坛
1. OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到.进入后,选择project或者由http//www.opencores.org/browse.cgi ...
- 【精】iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系. 每一个 iOS 应用程序都有一个单独的文件系统(存储空间).并且仅仅能在相应的文件系统中进行操作,此区域被称为沙盒. 全部的非 ...
- netty深入学习之中的一个: 入门篇
netty深入学习之中的一个: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java ...
- Java experts blog
https://blogs.oracle.com/poonam/ https://blogs.oracle.com/poonam/entry/updates_to_the_java_troublesh ...
- jQuery提供的一些判断数据类型的方法总结
// jQuery提供一系列工具方法,用来判断数据类型,以弥补JavaScript原生的typeof运算符的不足. // 以下方法对参数进行判断,返回一个布尔值. // jQuery.isArray( ...
- dubbo注册zookeeper保错原因
我的zookeeper是安装在本地,用的默认端口2181,版本3.4.10.dubbo版本2.5.8.dubbo-demo-provider.xml配置文件修改为:<dubbo:registry ...
- GNU风格 ARM汇编语法1
汇编源程序一般用于系统最基本的初始化:初始化堆栈指针.设置页表.操作 ARM的协处理器等. 这些初始化工作完成后就可以跳转到C代码main函数中执行. 1.GNU汇编语言语句格式 任何Linux汇编行 ...
- python map函数的使用
python2 中的map函数返回列表 python3 中的map函数返回迭代器 >>>def square(x) : # 计算平方数 ... return x ** 2 ... & ...
- javascript 中 IE与FF的不同之处及其兼容写法
png透明 AlphaImageLoaderfilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=bEnabled,siz ...
- linqtosql 实现数据分页
cs代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syst ...