魔灵 发表于 2012-6-7 21:38

Unity开发IOS如何优化?

经常卡很卡求解决!!!!!!!!!!!!!!

资源大湿 发表于 2012-6-8 15:10

这是我的一些总结:


[*]-试试把gameobject 一个一个禁用,确定下什么最影响性能
[*]- stats 里面有多少个 Draw calls & 三角形 手机5000以下最好 注意FPS
[*]- 合并网格物体
[*]-Batched越高越好, 整合渲染,
[*]- 合并材质张数
[*]- 不要用网格碰撞.mesh collider 用了之后 面数多的模型或地形会巨卡无比 因为你每移动一步都会有碰撞判断
[*]- Unity对带动作的模型渲染消耗比较大,如果是静态的不带动作文件的模型渲染不会出现效率问题,但是要确保只绘制屏幕内的东西
[*]-将所有音频设置为MP3,在iphone中解码的时候最省资源。
[*]-灯光能不用就不用, 阴影用个面代替, 投射阴影和实时灯光,简直就是frameKller.
[*]- 模型尽量减少面. 这个和drawCall相辅相成. 我上个游戏满屏只有400面, drawCalls都干到快90了,还一样能跑到30帧在真机上. 当然没有复杂的运动是另个方面.
[*]-模型尽量不要分开, 比如我现在坦克游戏, 车身和履带是分开的, 分别都是一次drawCalls,(打英文太烦了,以后drawCall 翻译为"绘图调用") 做到一起,就是一次
[*]-unity3d自带的quality setting 质量优化设置
[*]-光照剔除优化光照烘焙优化 建模中多边形数减少优化
[*]-内存池的核心思想就是在游戏进行中经常重复出现的物体不要用Instantiate和Destroy来生成和销毁(尤其在处理子弹的时候,会特别的卡),而是用GameObject.active = true/false来激活或者隐藏物体。
[*]-你可以在游戏初始化的时候用Instantiate来生成所有你需要的物体,然后隐藏(GameObject.active = false),在需要的时候再激活他们(GameObject.active = true)就行了。
[*]-不要用ragdoll
[*]-最终输出的时候,在unity - edit - project setting - player 里, 把 other settings - script call optimization 改成 快速, 但没有例外. fast but no exceptions
[*]-注意音乐设置,暂时没用过
[*]-unity - edit - project setting - time 里, 把 maximum allowed timestep 改成0.1

仗剑走天涯 发表于 2012-11-10 18:13

Draw Call次数越少越好,静止的物体打成一个模型
材质尽量合并
模型面数越少越好
脚本注意,打个比方,敌人用触发器触发事件,而不是Update里每次都去判断效果会好很多
音乐文件不要用很大的
关闭阴影、光照特效,阴影和光照可以用贴图来模仿
项目设置里可以把time step适当调高
quality settings里可以调效果,效果差自然帧数就高
多用Pref预制物体
可以异步加载,不用一次加载很多资源(第一关就加载第一关的资源,不需要加载后面关卡的资源)

另外发现静止的物体还好,动态的物体非常影响帧数,可以适当调节帧率,不是越高越好的。
高级点的就是什么LOD,遮挡剔除之类的,这个要自己研究了。

pungipungi 发表于 2017-3-5 12:07

难得一见的好帖

setvet 发表于 2017-3-5 12:09

很不错

hetianlong 发表于 2017-3-5 12:20

真心顶

hetianlong 发表于 2017-3-5 12:24

楼主是超人

setvet 发表于 2017-3-5 12:59

说的非常好

sunjunfa001 发表于 2017-3-7 14:50

LZ真是人才

passerph 发表于 2017-3-7 15:09

楼主是超人
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: Unity开发IOS如何优化?