![[Снимок экрана 2025-05-25 в 11.07.10.png]] ### Зачем Unity показывает именно эти метрики в «Stats» Окно **Stats** ‒ это «быстрый эхо-локатор производительности» — его рассчитали на художников и программистов, которым нужно мгновенно понять, **почему текущий кадр дорог**. Unity выводит только те показатели, которые лучше всего коррелируют с временем кадра на **CPU** и **GPU**, при этом собираются они «на лету» без заметного оверхеда. ### FPS (Frames Per Second — кадров в секунду) Текущая частота вывода кадров на экран. Чем выше FPS, тем плавнее игра. Для десктопа стоит держать не ниже 60 FPS; около 30 FPS игрок уже ощущает задержки. ### CPU: main thread (главный поток) Показывает, сколько миллисекунд главный поток тратит на обработку одного кадра — логику, физику, скрипты. Если значение превышает 16,6 мс (порог 60 FPS), именно CPU ограничивает частоту кадров; ищите тяжёлые скрипты, GC, лишние батчи. [[CPU main thread и CPU render thread]] ### CPU: render thread (поток рендера) Время подготовки команд для GPU. Главный поток (Main) формирует упрощённый список Draw-команд, а Render Thread превращает его в низкоуровневые вызовы API (Metal, Vulkan, D3D) Когда render thread дольше main thread, сцена упирается в графическую часть — много SetPass, батчей или дорогих материалов. [[CPU main thread и CPU render thread]] ### Batches (батчи) Количество групп draw call-ов, отправленных за кадр. Каждый батч — это вызов API; их много — растёт нагрузка на CPU. Старайтесь держать < 500 для мобильных, < 2 000 для десктопа. ### Saved by batching (сэкономлено батчей) Сколько исходных draw call-ов Unity объединила статическим/динамическим batching или GPU Instancing. Большое число говорит о том, что механизмы батчинга работают эффективно и снижают нагрузку на CPU. ### Tris (Triangles — треугольники) Количество треугольников, отправленных на GPU за кадр. Критично для слабых GPU: > 4–5 млн треугольников в кадре могут стать узким местом. ### Verts (Vertices — вершины) Число обработанных вершин. Иногда вершины важнее треугольников, если шейдер выполняет дорогие операции на вершину. ### Screen W×H — X MB Текущее разрешение рендеринга и ориентировочный объём видеопамяти, занятый буфером кадра. Чем выше разрешение, тем больше пропускная способность памяти и нагрузка на графический процессор (особенно при пост-эффектах). ### SetPass Calls Сколько раз движок переключал шейдерный пасс (pipeline state) в кадре. Каждый SetPass — дорогая операция синхронизации CPU↔GPU. Используйте общие материалы, SRP Batcher и GPU Resident Drawer, чтобы снизить число вызовов (< 100 — мобилки, < 300 — десктоп). ### Shadow casters (источники теней) Количество объектов, отрисованных в карты теней в этом кадре. Чем их больше, тем дороже построение теней, так как каждая теневая карта рендерится отдельно. ### Visible skinned meshes (видимые скин-мэши) Число активных SkinnedMeshRenderer, попавших в кадр. Каждый такой объект требует расчёта костей; без GPU Skinning это нагружает CPU. ### Animation components playing (компоненты Animation) Количество компонентов **Animation** (устаревшая система), которые сейчас воспроизводятся. Работают только на CPU; при большом числе объектов может значительно тормозить главный поток. ### Animator components playing (компоненты Animator) Число активных **Animator** ([[Mecanim]]). Каждый Animator обновляет граф состояний и IK; используйте Culling Mode = Cull Completely для невидимых объектов, чтобы снизить затраты.