文档目标:提供一套轻量级的运行时监控脚本,帮助开发团队在非 Profiler 模式下(如真机包、演示包)实时发现性能瓶颈。
Unity Profiler 开销很大,且只能连接开发机。 我们需要在QA 测试包或每日构建包中,直观地看到:
将以下脚本放入 Assets/Scripts/Debug/Performance。
FPSMonitor.cs (帧时间直方图)不只是显示 “60 FPS”。因为 “平均 60 FPS” 可能意味着 59 帧是 1ms,第 60 帧是 500ms(卡顿)。
void Update() {
float frameTime = Time.unscaledDeltaTime * 1000f;
_buffer.Add(frameTime);
// 计算 99th percentile...
}
ObjectCountTracker.cs (实体预算监控)防止策划或生成器配置错误导致爆内存。
Enemy Count > 500: ⚠️ WarningBullet Count > 2000: ❌ CriticalMemoryWatcher.cs (GC 监控)GC.GetTotalMemory 的变化率。建议使用 SRDebugger 或自定义的调试控制台来切换显示。
#if DEVELOPMENT_BUILD || UNITY_EDITOR
PerformanceHUD.Show();
#endif
F3 开启/关闭。任何超出上述标准的情况,测试人员应截图并将 FPSMonitor 的数据附在 Bug 单中。