最顶级的Unity团队都在使用的技巧!!!

news2024/9/28 11:53:27

作为该系列的第二篇文章,今天将给大家分享一下,Unity最资深的团队是如何设置物理、UI和音频的。希望可以帮助大家最大限度的使用Unity引擎。

第一篇给大家介绍了如何提高资源、项目配置和图形的性能,感兴趣的朋友千万不要错过了。

文章链接如下:

顶级工程师教你移动端游戏性能优化!Unity官方教程!

一、物理

在移动设备上,Unity内置的物理系统比较吃性能。下面的一些技巧可以帮助你优化在移动设备上的表现能力。

1、优化设置

在PlayerSettings中,选中PCM(prebake collision meshes)。同时编辑Physics设置,简化Layer Collision Matrix。

图片

启用 Prebake Collision Meshes

2、启用Reuse Collision Callbacks

图片

修改物理项目设置以进一步提高性能。

同时,需注意Profiler中的物理模块性能是否有问题。

3、简化碰撞体

可以使用原始碰撞体或者是网格碰撞体来替代更为复杂的网络碰撞体。

图片

使用原始或简化网格来表示碰撞体。

4、使用物理方法移动刚体

使用MovePosition或者AddForce来移动Rigidbody对象。如果直接转化组件可能会导致重新计算物理时间,特别是在复杂的场景中,会吃更多的计算机性能。

5、修改固定的时间间隔

因为在Project Settings中默认的Fixed Timestep是50hz(0.02)。这时候可以根据目标的帧率进行改动(比如,把60FPS设置0.06)。

如果Unity每帧都要多次使用Fixed Update,很可能会拉高你的CPU频率,从而造成一些性能问题。

这时候可以对帧率下降时的物理计算和FixedUpdate事件所使用的时间进行适当限制,减少计算机性能波动时的帧率影响。

图片

6、通过Physics Debugger实现可视化

使用Physics Debug窗口帮助故障检查有问题的碰撞体或者其他情况。

图片

二、用户UI界面

UGUI想必大家都不陌生,一般来说性能出问题,第一个就是查看它。所以,在我们日常使用的时候,一定要注意以下因素。

1、区分画布

根据UI元素的更新频率,区分这些元素。把静态的UI元素单独保留,将同时更新的动态元素保留在字画布上。一定要确保每个画布中的UI元素都有一样的材质。纹理和Z值。

2、禁用Raycast Target

在不需要使用Raycast Target的UI文本或者图像上禁用该功能。

图片

禁用 Raycast Target。

3、避免大量使用重叠元素

对大量的UI元素(如卡牌游戏中堆叠的卡牌)分层会造成过度绘制。自定义代码在运行时将分层元素合并到更少的元素和批次中。

4、使用多种分辨率和宽高比

现在移动手机的分辨率和屏幕大小各不相同,这时候可以创建不同的UI版本,按设备提供最佳体验。

设备模拟器:https://docs.unity3d.com/Manual/com.unity.device-simulator.html

图片

使用设备模拟器预览各种屏幕格式。

5、使用全屏 UI 时,隐藏其他内容

如果发暂停屏幕或者启动屏幕的时发现其他场景被遮住了,这时候可以禁用摄像机对3D场景的渲染。同时,禁用隐藏在顶层画布之后的所有背景画布元素。这时候可以考虑在全屏UI中降低Application.targetFrameRate。

6、音频

通常情况下音频不会造成性能瓶颈,但是也可以通过优化节省内存。

7、尽量使用单声道声音剪辑

如果要使用3D音频,可以启用Force To Mono,或者用单声道创作声音

8、压缩剪辑并降低压缩比特率

对大部分的声音使用Vorbis,对常用的短音(如枪声、脚步声)使用ADPCM。移动设备音效上限是22050Hz,降低设置一般来说影响很小。

图片

9、从内存中卸载静音的音频源 (AudioSources)

当使用静音时,直接取消AudioSource组件,直接从内存中卸载。

以上所有教程均来自Unity官方,如有兴趣了解可以去Unity中文官网查看。

 ·END·

扫描二维码

⬇️

添加助教老师

⬇️

免费领取游戏策划4天训练营!

⬇️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1506649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Autosar Crypto Driver学习笔记(一)

文章目录 Crypto DriverPre-ConfigurationCryptographic capabilities加密能力Available Keys可用密钥 General BehaviorNormal OperationFunctional RequirementsSynchronous Job ProcessingAsynchronous Job Processing Design NotesPriority-dependent Job Queue基于优先级的…

一元函数积分学——刷题(16

目录 1.题目:2.解题思路和步骤:3.总结:小结: 1.题目: 比较这两种题的求解方法 2.解题思路和步骤: 3.13: 这个题就很适合用万能公式,因为可以把1t2消掉: 也可以用三角…

大数据时代的数据保护:分布式存储系统的七大原则

第一原则:“灾”和“备”,区分容灾切换与数据备份的区别 管理对象 管理对象 防什么? 底层逻辑 核心评价指标 容灾切换 IT环境与业 物理灾难 …

基于C++和Qt Creator实现的仿制网易云音乐播放器

目录 总体介绍开发环境技术介绍项目目录项目介绍特殊说明Gitee地址 总体介绍 仿照网易云播放器界面实现,目的在于锻炼C编程能力,熟练掌握Qt Creator各种组件的使用及样式设置、界面布局、QtPlugin技术、QXml读写XML文件方法、Qss文件的编写及使用等。 …

【期刊】ACM Transactions on Privacy and Security

首页截图 subject areas 混合模式 根据官网介绍,本期刊不在金OA行列,可以自主选择出版模式。 出版方向 Topics of interest include 发文量 季刊,发文量很小 图像安全领域 未在今年发表图像安全领域论文。

CentOS 8启动流程

一、BIOS与UEFI BIOS Basic Input Output System的缩写,翻译过来就是“基本输入输出系统”,是一种业界标准的固件接口,第一次出现在1975年,是计算机启动时加载的第一个程序,主要功能是检测和设置计算机硬件&#xff…

【文档智能】再谈基于Transformer架构的文档智能理解方法论和相关数据集

前言 文档的智能解析与理解成为为知识管理的关键环节。特别是在处理扫描文档时,如何有效地理解和提取表单信息,成为了一个具有挑战性的问题。扫描文档的复杂性,包括其结构的多样性、非文本元素的融合以及手写与印刷内容的混合,都…

小程序 van-field label和输入框改成上下布局

在组件上面加个样式就行&#xff1a;custom-style"display:block;" <van-field label"备注说明" type"textarea" clearable title-width"100px" custom-style"display:block;" placeholder"请输入" /> …

JavaScript原型和原型链

JavaScript每个对象拥有一个原型对象 需要注意的是&#xff0c;只有函数对象才有 prototype 属性 当试图访问一个对象的属性时&#xff0c;它不仅仅在该对象上搜寻&#xff0c;还会搜寻该对象的原型&#xff0c;以及该对象的原型的原型&#xff0c;依次层层向上搜索&#xff…

02hadoop伪分布式搭建

3. 环境安装 3.1 安装方式 单机模式 只能启动MapReduce 伪分布式 能启动HDFS、MapReduce 和 YARN的大部分功能 完全分布式 能启动Hadoop的所有功能 3.2 安装JDK 3.2.1 JDK安装步骤 下载JDK安装包&#xff08;下载Linux系统的 .tar.gz 的安装包&#xff09; https://www…

企业微信HOOK协议,新设备二次验证处理

提示设备强制二次验证问题已处理 HOOK&#xff1a;https://www.showdoc.com.cn/1663062930779972/7859611259700402密码&#xff1a;999999999

代码随想录算法训练营第day6|242.有效的字母异位词 、 349. 两个数组的交集 、202. 快乐数、1. 两数之和

a.242.有效的字母异位词 题目链接 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s "anagram", t "n…

[ai笔记15] openAI官方提示词工程文档(图文重排版本)

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第15篇分享&#xff01; 最近在学习prompt提示词技巧&#xff0c;一番研究发现其实提示词的技巧并不是限定死的&#xff0c;所谓技巧和心法更像是教导我们如何更清晰、更结构化的大模型聊天工具进行沟通…

以题为例 浅谈sql注入二次注入

什么是二次注入 二次注入可以理解为&#xff0c;攻击者构造的恶意数据存储在数据库后&#xff0c;恶意数据被读取并进入到SQL查询语句所导致的注入。防御者即使对用户输入的恶意数据进行转义&#xff0c;当数据插入到数据库中时被处理的数据又被还原&#xff0c;Web程序调用存…

Vue 3中的reactive:响应式状态的全面管理

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Java高频面试之Mysql篇

有需要互关的小伙伴,关注一下,有关必回关,争取今年认证早日拿到博客专家 Java高频面试之总纲篇 Java高频面试之集合篇 Java高频面试之异常篇 Java高频面试之并发篇 Java高频面试之SSM篇 Java高频面试之Mysql篇 Java高频面试之Redis篇 Java高频面试之消息队列与分布式篇…

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题①

2024 年广东省职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项样题① 模块一 私有云&#xff08;50 分&#xff09;任务 1 私有云服务搭建&#xff08;10 分&#xff09;任务 2 私有云服务运维&#xff08;25 分&#xff09;任务 3 私有云运维开发&#xf…

二分算法(蓝桥杯 C++ 题目 代码 注解)

目录 模板&#xff1a; 题目一&#xff08;分巧克力&#xff09;&#xff1a; 代码&#xff1a; 题目二&#xff08;M次方根&#xff09;&#xff1a; ​编辑代码&#xff1a; 题目三&#xff08;跳石头&#xff09;&#xff1a; 代码&#xff1a; 题目四&#xff08;扫…

LLM RAG系统中消除数据幻觉的几个绝招-OPENAI公司内称的“大招”

前言-什么是数据幻觉&#xff1f;它到底有什么危害呢 我们直接来举例&#xff1a; 我是金银花一区的&#xff0c;附近有什么小学&#xff1f; 此时RAG带出如下信息&#xff1a; 金银花小区一区、二区、三区附近教育资源有&#xff1a;银树大学、建设小学金银花校区、金树高…

左偏树,可并堆详解,OJ练习,代码详解

文章目录 一、左偏树的定义和性质1.1优先队列的定义1.2可并堆的定义1.3左偏树1.3.1左偏树的定义1.3.2左偏树的性质1.3.3左偏树的合并操作1.3.3.1合并操作流程1.3.3.2合并操作的代码实现 1.4左偏树OJ练习1.4.1模板1.4.1.1原题链接1.4.1.2思路分析1.4.1.3AC代码 1.4.2P1552 [APIO…