Unity性能优化1【基础篇】

前言

首先想指出本文表达的内容包括但不限于Unity引擎,属于各引擎方案通用理念。

一.经过性能优化的游戏带来的好处

经过性能优化的游戏会运行流畅,占用较小内存,包体大小降低,耗电量和发热量降低,较低的闪退率等优点;

反之,性能相对较差的游戏最致命的问题之一就是卡死,闪退等问题;

试想一下PVP战斗中在胜负未分情况下出现卡死,必须重启游戏导致对局战败,这种体验感是非常差的,会使玩家质疑这个游戏玩下去和付费的必要性,另玩家流失。

二.性能优化学习思路

性能优化和很多其他能力一样,大成之前,无需发明创造,把各种经验总结记住即可;重要的就是知其然,并知其所以然,在实际做项目时可以让我们做出最优的决策。

三.幕后的事情

要理解为什么我们的代码可能表现不佳,我们首先需要了解 Unity 构建游戏时会发生什么。了解幕后发生的事情将有助于我们就如何提高游戏性能做出明智的决定。

四.编译

当我们构建游戏时,Unity 将运行游戏所需的所有内容打包到可由目标设备执行的程序中。 CPU 只能运行用非常简单的语言(称为机器代码或本机代码)编写的代码;它们无法运行用 C# 等更复杂的语言编写的代码。这意味着Unity必须将我们的代码翻译成其他语言。这个翻译过程称为编译。

Unity 首先将我们的脚本编译成一种称为通用中间语言 (CIL) 的语言。 CIL 是一种很容易编译成多种不同本机代码语言的语言。然后,CIL 被编译为我们特定目标设备的本机代码。

五.理解为什么某些代码比其他代码执行得更好

尚未编译的代码称为源代码。我们编写的源代码决定了编译后的代码的结构和内容。

在大多数情况下,结构良好且高效的源代码将产生结构良好且高效的编译代码。

首先,某些 CPU 指令比其他指令需要更多的时间来执行。一个例子是计算平方根。与两个数字相乘等计算相比,该计算需要 CPU 更多的时间来执行。单个快速 CPU 指令和单个慢速 CPU 指令之间的差异确实非常小,但从根本上来说,了解某些指令比其他指令更快是有用的。

接下来我们需要了解的是,一些在源代码中看起来非常简单的操作在编译为机器代码时可能会非常复杂。一个例子是将元素插入到列表中。执行此操作需要更多的指令,例如通过索引访问数组中的元素。同样,当我们考虑单个示例时,我们讨论的是一小部分时间,但重要的是要理解某些操作会比其他操作产生更多的指令。

结论一:达成相同目标的简单语句存在执行快慢之分

结论二:达成相同目标的数据结构存在执行快慢之分

对有经验的程序员来说,这两个结论是比较基础的知识;但是这里提出来的重点是将其与性能优化结合到一起来加深记忆,建立逻辑,作为两个例子解释为什么这么做而不那么做。

六.区分我们的脚本代码和Unity引擎代码

区分 C# 编写的脚本与构成 Unity 引擎的代码对我们很有用。 Unity 引擎的大部分核心功能都是用 C++ 编写的,并且已经编译为本机代码。这个编译后的引擎代码是我们安装 Unity 时安装的一部分。

相关推荐
爱喝水的鱼丶19 小时前
SAP-ABAP:SELECT大数据量查询性能调优——避免嵌套循环、减少数据库交互的核心方案
开发语言·数据库·sql·性能优化·sap·abap·erp
Revolution6119 小时前
首屏变慢后,应该先查资源下载、脚本执行还是接口请求
前端·性能优化·前端工程化
云栖梦泽在2 天前
稳如狗网络工具箱:IP、DNS、WebRTC、测速、连通性和全球延迟检测工具简明介绍
网络·网络协议·tcp/ip·网络安全·性能优化·webrtc
井川廊咏2 天前
初探性能优化——2个月到4小时的性能提升
jvm·数据库·性能优化
这个DBA有点耶2 天前
热点行更新:秒杀场景下一条UPDATE语句的锁等待与性能优化
数据库·sql·mysql·性能优化·database·dba
爱喝水的鱼丶2 天前
SAP-ABAP:SELECT查询性能优化基础——索引匹配、条件顺序与缓冲机制利用技巧
数据库·性能优化·select·sap·abap·开发交流·交流学习
随风一样自由2 天前
【前端+登录页】登录页背景性能优化实战:从 722 KB 到 200 KB,LCP 从 2.5s 到 1.2s
前端·性能优化·登录页·ttl·lcp
人间凡尔赛2 天前
2026 前端全栈开发新范式:React Compiler + Signals + RSC 实战指南
前端·性能优化·react·全栈·signals·rsc
爱喝水的鱼丶2 天前
SAP-ABAP:SELECT特殊语法应用——UP TO n ROWS、CLIENT SPECIFIED等关键字的使用场景
性能优化·select·sap·abap·经验交流·特殊语法
kirs_ur2 天前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化