包含此页的版本:
不含此页的版本:
要添加一个分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表计数器,创建脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表执行以下作:
这些部分中的代码示例添加了一个Profiler 计数器使用 ProfilerCounter API 放置在代码中,用于跟踪指标,例如游戏中生成的敌人数量。更多信息
请参阅术语表以跟踪 Unity 为每个实例创建的粒子总数游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表的轨迹效果。在这些示例中,游戏对象的名称为“Tank”。
一些示例使用 Profiling Core 包,您必须在开始之前安装该包。Unity Profiling Core 包无法在包管理器 UI 中发现,因为它是核心包。要安装包,请按其名称添加它,即com.unity.profiling.core.
要创建新计数器,请执行以下作:
重要:创建计数器时,必须指定哪个性能分析器类别标识 Unity 子系统的工作负载数据(例如,渲染、脚本和动画类别)。Unity 对类别应用颜色编码,以直观地区分 Profiler 窗口中的数据类型。
请参阅术语表您的新计数器属于。为此,请使用ProfilerCategory类。以下示例中的脚本使用现有的ProfilerCategory.Scripts类别。
Profiler 计数器 API 支持推送和拉取作。您可以将计数器的值推送到 Profiler,或者 Profiler 可以在帧末尾拉取该值。
如果数据不经常更改(例如每帧更改一次),请使用ProfilerCounterAPI 将计数器数据推送到 Profiler。如果数据每帧多次更改,请使用ProfilerCounterValue应用程序接口。这使得性能分析器自动拾取帧末尾的最后一个值。
以下示例脚本定义了ProfilerCounterValue TankTrailParticleCount,名称为Tank Trail Particles和一个单位ProfilerMarkerDataUnit.Count:
public static class GameStats
{
public static readonly ProfilerCategory TanksCategory = ProfilerCategory.Scripts;
public const string TankTrailParticleCountName = "Tank Trail Particles";
public static readonly ProfilerCounterValue<int> TankTrailParticleCount =
new ProfilerCounterValue<int>(TanksCategory, TankTrailParticleCountName, ProfilerMarkerDataUnit.Count,
ProfilerCounterOptions.FlushOnEndOfFrame | ProfilerCounterOptions.ResetToZeroOnFlush);
}
选项FlushOnEndOfFrame和ResetToZeroOnFlush自动将计数器发送到分析器数据流,并在帧结束时将计数值重置为零。
要更新计数器的值,请创建一个 MonoBehaviour 脚本来设置您定义的计数器的值。
以下 MonoBehaviour 脚本计算 Update 函数中每一帧属于分配的游戏对象的尾迹粒子数。为此,它使用名为TankTrailParticleCount.
以下示例脚本还创建了一个名为 Trail 的公共属性粒子系统通过在场景中生成大量小型 2D 图像并为其设置动画来模拟流体实体(如液体、云和火焰)的组件。更多信息
请参阅术语表 (m_TrailParticleSystem) 在检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表:
using UnityEngine;
class TankMovement : MonoBehaviour
{
public ParticleSystem m_TrailParticleSystem;
void Update()
{
GameStats.TankTrailParticleCount.Value += m_TrailParticleSystem.particleCount;
}
}
要通过代码在自定义 Profiler 模块中显示 Profiler 计数器,您必须创建一个新的ProfilerModule脚本并定义模块的属性,包括它显示的计数器、名称和图标。有关如何执行此作的信息,请参阅在代码中创建分析器模块。