Unity3D 游戏性能优化笔记
一、程序方面 1、尽量少new对象,减少GC的次数,可以使用对象池技术。 2、使用UGUI时,不要通过界面的z轴来做界面排序,这貌似会导致UGUI的批处理失效。 3、尽量少使用GetComponent(),频繁调用的可以用一个变量在开始时把component存起来。 4、不使用OnGui() 5、尽量少实例化游戏对象,同1,可使用对象池技术。 6、要构建字符串时,尽量使用StringBuilder代替string的默认相加操作,减少产生临时字符串。 7、将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉。 二、渲染方面 1、尽量使用光照贴图,可以节省cpu性能,因为实时光照要一直计算,很耗费cpu性能。 2、尽量不使用mesh collider,因为mesh collider相比普通的collider包含大量顶点,计算量很大。 3、把多张小图打包成一张图集,减少draw call调用。 4、尽量使用共享材质,这样的话无论如何修改材质的属性,内存中都只会占用一份,但如果使用普通的材质,每次改动材质属性Unity都会new一个新的材质出来,并在这个材质上修改。这些材质会一直占用着内存,直到调用Resources.UnloadUnusedAssets()的时候才释放,会导致内存 泄露。 5、尽量少使用逐像素光,因为像素数远比顶点数要多,会很耗费性能。 6、使用LOD