Unity性能优化

Unity的性能优化有很多需要注意的地方,包括代码优化,资源优化,GPU优化等等,在下面只是学习了最简单的几种。

层级细节LOD技术

这个说白了就是利用人眼看物体的距离,把一个物体做几个精细程度,近的时候就给他看精细程度高的,远的时候就给他看精细程度低的。

创建一个空物体,挂上LOD Group组件,把这3个资源分别拖到该组件下

注意:LOD 0-3分别表示精度(高中低),Culled表示不显示

遮挡剔除OcclusionCulling

当一个物体被其它物体遮挡住而相对当前摄像机不可见时,可以不对其进行渲染。

注意:遮挡剔除不同于视锥体剔除,视锥体剔除只是不渲染摄像机视锥范围之外的物体,而被其它物体遮挡但依然在视锥范围之内的物体不会被剔除。

选中要进行遮挡剔除的物体(所有Cube),勾选Occluder Static

打开Windows > Occlusion Culling  点击Bake进行烘焙

 运行结果:

光照贴图Lightmapping

游戏中的实时光照运算非常耗时,运用光照贴图技术,可以先计算场景内的光影效果产生的氛围,之后关闭光源,以保证游戏运行时光源达到最少。

将光源的模式设为Baked

选择其它物体,勾选Lightmap Static

选择Windows > Lighting > Settings ,进行烘焙

结果:我们关闭光源后,还是可以看到光的效果

Mesh合并

额,表示还没怎么懂

资源池-Object Pool技术

代码实现,比如捕鱼,要随时实例化和销毁子弹,这是很消耗性能的。我们可以专门拿一个文件来管理子弹,在这个文件中一次创建很多子弹,设置它们不可见。当实例化子弹的时候,遍历这些子弹,谁不可见就拿谁用,设置为可见,然后设置位置等信息,用完该销毁的时候不销毁,再设置为不可见就行了。

原文地址:https://www.cnblogs.com/lmx282110xxx/p/10798659.html