iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Unity项目优化相关技巧
  • 592
分享到

Unity项目优化相关技巧

2024-04-02 19:04:59 592人浏览 八月长安
摘要

目录一、简单优化二、优化进阶四、代码相关优化一、简单优化 1.图片纹理大小尽量为2的幂次方(比如128,512,1024等等),以便Unity对其进行优化。 2.将多个小图片纹理合并

一、简单优化

1.图片纹理大小尽量为2的幂次方(比如128,512,1024等等),以便Unity对其进行优化。

2.将多个小图片纹理合并一个大的图片纹理以降低drawcall,特别是同一个ui面板的元素都放到一个图集中,背景图片尽量单独做一个图片。

3.尽可能的共用材质球,原因同上。

4.不需要播放动画的模型把Animator或animation组件删除掉,因为不管用或不用他们都会被初始化。

5.模型方面要注意尽可能的减少顶点数和三角面数,尽可能重用顶点

6.纹理的mipmap视情况开关(一般用于3D场景,UI和2D游戏中不要使用),打开的话可以减少纹理叠加时的抖动闪烁问题加快渲染速度,减少图像锯齿;但是会占用更多的内存空间以及使项目的打包文件变大(毕竟生成了一系列逐层缩小的备份小图)。

7.将场景中不会发生变化(位移、旋转等)的物体设置为Static,方便unity进行静态批处理。

8.打开player setting中的静态批处理(Static Batching)和动态批处理(Dynamic Batching):静态批处理需要勾选场景中不需要变化的物体的Batching Static,否则不会起到优化效果;注意,使用合批处理后仅是降低了CPU到GPU的传输次数和SetPassCall且不需要再次执行顶点变化操作,但是会增大包体及内存消耗。

9.灯光方面Spotlight开销很大要尽量少用。

10.尽量少用实时阴影,若必用不可则使用Hard Shadow。

11.谨慎使用半透明材质和UI以减少overdraw,如alpha为0的image虽然不可见但是gpu仍然会对其进行绘制;若UI中存在很多半透明界面,建议UI由单独的摄像机进行渲染,且UI不要叠加到场景摄像机渲染范围内。

二、优化进阶

1.使用缓冲池管理需要经常出现和销毁的object。

2.视情况使用lod技术,使用此技术需要制作多套模型,故而会使项目的打包文件变大同时会占用更多内存,但是可以降低需要绘制的顶点数目,若距离调整不好可能会出现模型突变的情况。

3.视情况使用OC(遮挡剔除)功能(通常用于场景中有大量模型的情况),使用此功能可以大大降低overdraw(毕竟被遮挡的物体直接不渲染了),需要注意物体的大小要与单元格大小达到一个平衡;可以通过设置物体的Occluder Static和Occludee Static来控制物体为遮挡物或被遮挡物。此技术的缺点就是会耗费额外的CPU。

4.使用灯光贴图搭配light probe group来替代实时光照,使用此技术对模型要求较高,不能有UV错乱、法线错乱的情况,否则会出现很奇葩的状况;同时使用此技术将不会有动态阴影生成。

5.针对不同的平台对纹理进行压缩(比如iOS为pvrtc;安卓为ETC1,若有alpha通道则使用RGBA 16-bit),需要注意的是压缩后有时会影响纹理的质量。

6.不同UI界面使用多个canvas,因为unity为了性能优化会合并canvas下所有元素到一个Mesh中;如果所有界面放到一个canvas,在界面发生变化的时候会造成重绘,降低性能,最优解是一个静态的ui放一个canvas,动态的ui视情况分别放到不同canvas中,注意也不要分的太细不然会造成dc的增加。

7.蒙皮网格动画改为顶点动画,用空间换时间

8.移动端若对渲染帧率没有特定要求,可以通过降低帧率的形式来节省机器性能,需要注意在 QualitySettings.vSyncCount中不能设置为Don't Sync否则下面的设置将无效,设置方式如下:

在项目配置类或主类中的Awake或Start中加入下面的代码


Application.targetFrameRate = 30;    //移动平台默认30为比较节省电量的帧率,若要达到最佳性能则设置为300(这样机器会尽其所能提高帧率,但是很大概率达不到300)

9.合理利用Profiler进行性能瓶颈分析与优化。

10.将Terrain转为Mesh,大地图使用流式加载及卸载技术。

11.模型的蒙皮网格动画改为顶点动画,用空间换时间。

12.使用Animation Instancing优化大量模型动画。

13.尽可能用BoxCollider替代MeshCollider。

三、深度优化(操作起来比较复杂,需要掌握一些底层知识或需要极端优化的情况)

1.使用自定义shader

2.合并mesh(此处可以学习下林大佬写的相关博客)

3.UI中不涉及到射线检测的Canvas把GraphicRaycaster组件删掉

4.尽量少用LayoutGroup和contentSizeFitter,虽然用起来比较方便,但是在用户操作时会导致整个ui界面的重绘,有能力的大牛建议自己写一个算法来实现局部的重绘,没有能力的就只能在使用这俩组件的地方使用单独的Canvas来尽量避免整个UI的重绘了。

5.视情况使用单通道实例化渲染:要启用此功能,请打开 Player 设置(选择 Edit > Project Settings__,然后选择 Player__ 类别)。在 Player 设置中,导航到底部的 XR Settings 面板,选中 Virtual Reality Supported 选项,然后从 Stereo Rendering Method 下拉菜单中选择 Single Pass Instanced (Preview)

四、代码相关优化

1.用for循环替代foreach、

2.用gameObject.CompareTag("tag")替代gameObject.tag="tag".

3.Find、GetComponent方法尽量在Start、Awake之中调用,不要在Update之类方法中调用。

4.用string.fORMat替代+拼接字符串

5.物理检测在fixedUpdate中进行。

以上就是Unity项目优化相关技巧的详细内容,更多关于Unity项目优化的资料请关注编程网其它相关文章!

--结束END--

本文标题: Unity项目优化相关技巧

本文链接: https://www.lsjlt.com/news/134581.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Unity项目优化相关技巧
    目录一、简单优化二、优化进阶四、代码相关优化一、简单优化 1.图片纹理大小尽量为2的幂次方(比如128,512,1024等等),以便unity对其进行优化。 2.将多个小图片纹理合并...
    99+
    2024-04-02
  • 22个Vue优化技巧(项目实用)
    目录代码优化 v-for 中使用 key v-if/v-else-if/v-else 中使用 key合理的选择 v-if 和 v-show 使用简单的 计算属性functional ...
    99+
    2024-04-02
  • Git工作流程优化技巧:项目经验分享
    在软件开发中,版本控制系统是一个非常重要的工具。Git作为目前最流行的版本控制系统之一,被广泛应用于各种规模的开发项目中。然而,只会使用Git并不足以让我们发挥其最大的作用,合理优化Git工作流程才能提高开发效率,减少出错的可能性。本文将分...
    99+
    2023-11-03
    优化 git 工作流
  • vue项目中一定会用到的性能优化技巧
    目录引言性能优化标准Lighthouse通用常规优化手段通用性能优化分析FCP(First Contentful Paint)LCP(Largest Contentful Paint...
    99+
    2024-04-02
  • 使用Composer插件来优化项目依赖管理的技巧
    如何使用Composer插件来管理项目依赖引言:在现代软件开发中,依赖管理是一个关键的任务。随着项目越来越复杂,可能会涉及到许多不同的库和框架。为了更好地管理这些依赖项,Composer成为了许多开发人员首选的工具。除了Composer本身...
    99+
    2023-12-26
    管理 项目依赖 Composer插件
  • PHP7安装目录优化技巧分享
    PHP7安装目录优化技巧分享 PHP是一种广泛使用的服务器端脚本语言,被用于开发动态网页和网站。PHP 7是PHP的一种改进版本,它带来了更快的性能和更低的内存消耗。在安装PHP 7时...
    99+
    2024-03-10
    php 技巧分享 目录优化 php脚本
  • Windows Server 2008 四项优化技巧详解
    相比旧版本操作系统,Windows Server 2008系统绝对是一款与众不同的系统,该系统新推出了许多让人眼睛为之一亮的功能,并且它在运行安全性方面也有了大幅度地提高。不过,这并不意味着每个人都能...
    99+
    2023-05-24
    win2008 优化 技巧
  • 网站性能优化的关键技巧
    随着互联网的快速发展,网站的性能优化变得越来越重要。一个高性能的网站能够吸引更多的访问者,并提供更好的用户体验。本文将介绍一些关键的网站性能优化技巧,帮助网站管理员提升网站的性能。 一、压缩和缩小文件大小 文件的大小对网站的加载...
    99+
    2024-02-03
    缓存 压缩 异步加载 压缩技术 延迟加载
  • 关键词优化的技巧有哪些
    本篇文章为大家展示了关键词优化的技巧有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  1、关键词的拆分机制。  谈到关键词拆分,做SEO的朋友都不会陌生,就用“武汉做网站”来说,可以拆分成“做...
    99+
    2023-06-10
  • Go语言高级导包技巧:优化项目结构与性能
    标题:Go语言高级导包技巧:优化项目结构与性能 随着互联网技术的快速发展,Go语言作为一种强大且高效的编程语言,越来越受到开发者的青睐。在Go项目开发中,合理的导包方式对项目结构和性能...
    99+
    2024-04-02
  • PHP查询优化技巧:排除不相等字段
    PHP查询优化技巧:排除不相等字段 在进行数据库查询时,我们经常会遇到需要排除一些不相等的字段的情况。这种情况下,我们需要使用一些查询优化技巧来提高查询效率,避免不必要的数据获取和处理...
    99+
    2024-03-11
    查询 优化 php sql语句
  • Bootstrap相关项目有哪些
    这篇文章主要为大家展示了“Bootstrap相关项目有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Bootstrap相关项目有哪些”这篇文章吧。 Bootstrap这些年火得如日中天,去招...
    99+
    2023-06-04
  • Windows98优化小技巧
    加快系统启动速度   1、用系统配置程序定制自动选项。   单击“开始”按钮,选择“运行”,在“打开”输入框内输入msconfig,单击&ldq...
    99+
    2023-05-23
    技巧 Windows98
  • .NET Framework初始化相关实现技巧是怎样的
    本篇文章给大家分享的是有关.NET Framework初始化相关实现技巧是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如何正确的应用.NET Framework,决定了...
    99+
    2023-06-17
  • 优化网站性能的五个关键技巧
    随着互联网的快速发展,现代社会已经离不开各种各样的网站。然而,对于网站开发者和运营者来说,一个高性能的网站是至关重要的。一个快速响应、加载速度快的网站不仅可以提供更好的用户体验,还能提高搜索引擎优化的排名。本文将介绍五种关键技巧...
    99+
    2024-02-02
    预加载 缓存 压缩 搜索引擎优化 地理位置
  • IDEA使用技巧之如何将本地项目和git远程项目关联
    目录将本地项目和git远程项目关联正确的流程应该是总结将本地项目和git远程项目关联 之前开发没有从头儿搭建过新项目,都是从IDEA配置下项目的git地址,pull代码之后进行开发,...
    99+
    2023-02-15
    IDEA使用技巧 IDEA本地项目 IDEA git远程项目 本地项目和git关联
  • Spring Cloud相关项目有哪些
    小编给大家分享一下Spring Cloud相关项目有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Spring Cloud Config配置管理工具包,让你可...
    99+
    2023-06-05
  • html5相关常用技巧有哪些
    本篇内容主要讲解“html5相关常用技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5相关常用技巧有哪些”吧!   1. 新的Doctype声...
    99+
    2024-04-02
  • PHP 性能优化:内存优化技巧
    内存管理对 php 性能优化至关重要。优化内存使用可以通过以下技巧实现:使用高效的数据结构,如数组而非链表。避免不必要的内存拷贝,使用引用 (&) 或赋值 (=) 进行变量传递。...
    99+
    2024-05-10
    php 内存优化 键值对
  • 优化MySQL的小技巧
    这篇文章主要介绍了优化MySQL的小技巧,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.没有两个数据库或者应用程序是完全相同的。这里假设我...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作