Unity性能优化

Wesley13
• 阅读 606

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

层级细节LOD技术

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

Unity性能优化

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

Unity性能优化

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

遮挡剔除OcclusionCulling

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

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

Unity性能优化

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

Unity性能优化

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

Unity性能优化

 运行结果:

Unity性能优化

光照贴图Lightmapping

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

Unity性能优化 将光源的模式设为Baked

Unity性能优化

选择其它物体,勾选Lightmap Static

Unity性能优化

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

Unity性能优化

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

Unity性能优化

Mesh合并

额,表示还没怎么懂

资源池-Object Pool技术

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
java 性能优化:35 个小细节,让你提升 java 代码的运行效率
前言代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但
Souleigh ✨ Souleigh ✨
3年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这