Version: 6000.3
语言: 中文
针对移动设备进行优化
优化 iOS 播放器的大小

使用内置分析器测量性能

注意:内部探查器已弃用,并将在未来版本的 Unity 中停用。请改用 Profiler 窗口(菜单:Window > Analysis > Profiler)请参阅在 iOS 设备上收集性能数据,了解有关如何分析 iOS 设备的更多信息。

Unity 包含一个内置的分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表
以提供有关应用程序运行方式的见解。每 30 帧,内置分析器会从设备上运行的应用程序发出控制台消息,以帮助确定它是受 CPU 还是 GPU 限制。如果应用程序受 CPU 限制,则可以确定是脚本代码还是垃圾回收导致了瓶颈。

下面是内置分析器的输出示例:

iPhone Unity internal profiler stats
frametime>     min: 32.5   max: 34.1   avg: 33.3
cpu-player>    min:  2.2   max:  4.4   avg:  3.7
batches>       min:   3    max:   3    avg:   3
draw calls>    min:   3    max:   3    avg:   3
tris>          min:  1704  max:  1704  avg:  1704
verts>         min:  5088  max:  5088  avg:  5088
dynamic batching> batched draw calls:   0 batches:   0 tris:     0 verts:     0
static batching>  batched draw calls:   0 batches:   0 tris:     0 verts:     0
player-detail> physx:  0.0 animation:  0.0 culling  0.0 skinning:  0.0 batching:  0.0 render:  0.0 fixed-update-count: 0 .. 0
scripting-scripts>  update:  0.0   fixedUpdate:  0.0 coroutines:  0.0 
scripting-memory>   information not available on non-development player configuration

所有时间均以每帧毫秒为单位。您可以检查过去 30 帧的最小、最大和平均时间。

常规 CPU 活动

财产 功能
CPU播放器 显示应用在 Unity 引擎中执行代码和执行所花费的时间脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
在 CPU 上。
cpu-ogles-drv(仅限 Android) 显示在 CPU 上执行 OpenGL ES 驱动程序代码所花费的时间。这些驱动程序统计信息可能受到多种因素的影响,包括绘制调用数、内部渲染状态更改数、渲染管线设置和已处理顶点数。
cpu-present(仅限 Android) 执行presentRenderbuffer命令。
帧时间 表示应用帧的总时间。请注意,iOS 硬件锁定为 60Hz 刷新率,因此此属性将始终返回 16.7 毫秒的倍数 (1000ms/60Hz = 16.7ms) 的时间。

渲染统计

财产 功能
特里斯# 发送用于渲染的三角形总数。
垂直# 发送渲染的顶点总数。如果您的应用程序仅使用静态几何图形,请将此数字保持在 10000 以下。如果您的应用程序使用蒙皮几何体的许多实例,则此数字应该低得多。
动态/静态批处理 引擎自动批处理的绘制调用、三角形和顶点的数量。将这些数字与平局和三角形总数进行比较,可以让您了解自己的情况如何场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
准备进行批处理。在对象之间共享尽可能多的材质,以改进批处理。

详细的 Unity Player 统计信息

玩家详细信息部分提供了引擎内部发生情况的详细分类:

财产 功能
物理 花在物理上的时间。
动画 为骨骼制作动画所花费的时间。
淘汰 相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
平截头体。
蒙皮(skinning) 将骨骼关节绑定到角色网格体或“皮肤”顶点的过程。使用外部工具(如Blender或Autodesk Maya)执行。更多信息
请参阅术语表
将动画应用于蒙皮网格体所花费的时间。
配料 批处理几何体所花费的时间。批处理动态几何体比批处理静态几何体更耗费资源。
呈现 渲染可见对象所花费的时间。
固定更新计数 在此帧内执行的 FixedUpdate 的最小和最大数量。太多的 FixedUpdate 会显着降低性能。

详细的脚本统计

scripting-scripts 部分提供了在 Mono 运行时执行代码所花费的时间的详细细分:

财产 功能
更新 执行所有Update()脚本中的方法。
已修复更新 执行所有FixedUpdate()脚本中的方法。
协程 在脚本协程中花费的时间。

脚本分配的内存的详细统计

scripting-memory 部分让您了解 Mono 垃圾收集器如何管理内存:

属性 功能
已分配的堆 可用于分配的内存总量。如果堆没有足够的内存用于给定分配,则会触发垃圾回收。如果这不能释放足够的内存,则分配的堆的大小将增加。
已用堆 对象当前用完的已分配堆部分。每次创建新的类实例(而不是结构)时,此数字都会增长,直到下一次垃圾回收。
最大集合数 过去 30 帧内的垃圾回收传递次数。
收集总持续时间 过去 30 帧内发生的所有垃圾回收过程的总时间(以毫秒为单位)。

配置

在 iOS 上,内部分析器默认处于禁用状态。若要启用它,请使用以下任一过程。

Xcode 项目

要从 Xcode 项目内部启用内部分析器,请使用以下步骤:

  1. 打开 Unity 生成的 Xcode 项目,
  2. 选择InternalProfiler.h文件。
  3. 从以下位置更新以下行:
#define ENABLE_INTERNAL_PROFILER 0

#define ENABLE_INTERNAL_PROFILER 1

播放器设置

要在 Unity 中启用内部分析器,请使用以下步骤:

  1. 在主菜单中,转到 编辑(Edit) > 项目设置(Project Settings) > iOS> 播放器设置(Player Settings) 。
  2. “调试和崩溃报告”部分中,启用“启用内部探查器(已弃用)”。

注意:确保开发版本开发版本包括调试符号并启用性能分析器。更多信息
请参阅术语表
选项在 Platform Settings 部分启用构建配置文件目标平台创建构建时使用的一组可自定义配置设置。更多信息
请参阅术语表
窗口。

显示控制台

要显示输出控制台,请在 Xcode 中选择 查看(View) > 调试区域(Debug Area) > 激活控制台(Activate Console),然后运行项目。Unity 每 30 帧将统计信息输出到控制台窗口。

针对移动设备进行优化
优化 iOS 播放器的大小