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

作为该系列的第二篇文章,今天将给大家分享一下,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.hqwc.cn/news/527620.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VScode---php环境搭建

文章目录 1.下载php Dehug;php server2.下载php环境3.配置环境变量5.配置php.ini文件6.设置vscode6.测试遇到的问题 1.下载php Dehug;php server 2.下载php环境 下载地址:https://www.php.net/downloads.php 3.配置环境变量 C:\Users\hacker>php -v PHP 8.3.3 (…

【Web开发】深度学习HTML(超详细,一篇就够了)

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Web开发】深度学习html(超详细,一篇就够了) 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 HTML1. HTML基础1.1 什么是HTML1.2 认识HTML标签1.3 HTML文件基本…

网络学习:数据链路层Ethernet II协议详解

前言: Ethernet II协议位于数据链路层,其包含MAC地址、数据类型和上层的数据报。 一、MAC地址格式 组织唯一标识符(OUI)24bit厂商分配(EUI)I/GG/L22bit24bit 组织唯一标识符(OUI): …

最新基于R语言lavaan结构方程模型(SEM)技术应用

结构方程模型(Sructural Equation Modeling,SEM)是分析系统内变量间的相互关系的利器,可通过图形化方式清晰展示系统中多变量因果关系网,具有强大的数据分析功能和广泛的适用性,是近年来生态、进化、环境、…

全球AI人才报告曝光:清华第三,北大第六!硅谷40万人大裁员,码农地狱级面试12场

就在刚刚,全球AI人才报告发布。 全世界的顶尖AI人才中,由中国培养出的人才已经占到了近1/2! 有趣的是,当这些人卷到美国后,当地程序员的日子,似乎是越来越难了。 不断压低的薪资,无休止的面试…

难❗️计算机考研408难度又破新高!

24年408考研,如果只用王道的复习资料,最多考100-120分 就是这么的现实,王道的资料虽然好,但是并不能覆盖全部的知识点和考点,而且24年的408真题考的很怪,总结起来就是下面这些特点: 偏&#x…

浅浅的了解 autoconf:当开源项目不再自带 configure 文件

背景 在开源软件的世界里,开发者可以自己编译和安装需要的组件,这也是我喜欢开源项目的原因之一。然而,就在昨天,当我尝试编译一个颇具吸引力的开源项目时,我意外地发现该项目并没有包含通常所见的 configure 脚本&am…

线程-创建线程的方法、线程池

1.创建线程一共有哪几种方法? 继承Thread类创建线程 继承Thread类,重写run()方法,在main()函数中调用子类的strat()方法 实现Runnable接口创建线程 先创建实现Runnable接口的类,重写run()方法,创建类的实例对象&#…

【go语言开发】redis简单使用

本文主要介绍redis安装和使用。首先安装redis依赖库,这里是v8版本;然后连接redis,完成基本配置;最后测试封装的工具类 文章目录 安装redis依赖库连接redis和配置工具类封装代码测试 欢迎大家访问个人博客网址:https://…

二叉树进阶--二叉搜索树的进一步优化--AVL树 Self-balancing binary search tree

前言: 在上一次的文章中,我们详细介绍了二叉树的进阶树型,即BS树(二叉搜索树),但在文章的结尾,二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表…

【物联网】-智能社会的分类

万物感知 感知物理世界,变成数字信号 (温度、空间、触觉、嗅觉、听觉、视觉) 万物互联 将数据变成online,使智能化 (宽联接、广联接、多联接和深联接) 万物智能 基于大数据和人工智能的应用 &#…

多模太与交叉注意力应用

要解决的问题 对同一特征点1从不同角度去拍,在我们拿到这些不同视觉的特征后,就可以知道如何从第一个位置到第二个位置,再到第三个位置 对于传统算法 下面很多点检测都是错 loftr当今解决办法 整体流程 具体步骤 卷积提取特征,…