游戏开发优化建议
比如我们写了一个程序 单线程的初始化申请了500内存。updata 空转。
基本就不发热。热量产生来源就是 cpu 和 gpu
减少计算量 基本等于 减少散热量。
举个例子
我要一个变量 他的取值范围 0-255 那么一个 字节8比特 8个电位就表达了。
任何复制取值操作都只有8个电位。
你非要定义int 那么 表示这个变量 就是32比特 32个电位
任何复制取值操作都是 上述的4倍消耗。
减少帧率中的不必要的大计算量的循环 = 减少CUP GPU负担 = 减少热量。
优化线程,寻找热点,看看是哪个函数消耗较高,把主要消耗的线程任务分配到空闲的线程,提高整体效率。优化物理,减少场景内没有必要的物理碰撞(和美术配合)减少模型面数(和美术配合,做模型的LOD)优化材质(和美术配合),注视距裁剪,检测有没有空转的函数。这些做好至少提升帧数20-50 zheng
1.对模型做LOD
2.减少GC的触发(很多时候大的卡顿点都是这个引起的)
3.不要在update做一些高消耗的调用,如GetComponet,Find,Load,SetActive,直接取transform等等
4对挂有Collider对象,修改位置或旋转不要直接改transform,把Rigidbody也挂上,通过修改Rigidbody的位置和旋转来达到移动的目的。
5.如果同时修改位置和旋转时,使用SetPositionAndRotation
6.离开视野的动画和粒子不要播放。
7.物理引擎消耗要注意。mesh顶点数不要太多。能用射线的就不要投射球体和立方体。
8.减低fixedupdate频率的限制来减少物理引擎的消耗。
9.遮挡剔除。
10.对不同机型做分级优化。
11.模型的面数要控制在一定的数量内。远处使用低模。太远的直接不显示。
12.模型骨骼数量不要太多。
13.drawcall数要控制
14.不要使用太过复杂的shader。物体能渲染一面的就只渲染一面。
15.限帧。