Unity开发IOS如何优化?
经常卡很卡求解决!!!!!!!!!!!!!!这是我的一些总结:
[*]-试试把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
Draw Call次数越少越好,静止的物体打成一个模型
材质尽量合并
模型面数越少越好
脚本注意,打个比方,敌人用触发器触发事件,而不是Update里每次都去判断效果会好很多
音乐文件不要用很大的
关闭阴影、光照特效,阴影和光照可以用贴图来模仿
项目设置里可以把time step适当调高
quality settings里可以调效果,效果差自然帧数就高
多用Pref预制物体
可以异步加载,不用一次加载很多资源(第一关就加载第一关的资源,不需要加载后面关卡的资源)
另外发现静止的物体还好,动态的物体非常影响帧数,可以适当调节帧率,不是越高越好的。
高级点的就是什么LOD,遮挡剔除之类的,这个要自己研究了。 难得一见的好帖 很不错 真心顶 楼主是超人 说的非常好 LZ真是人才 楼主是超人