Unity 3D Profiler

2075 / Unity3D / Додатково / Profiler

 

 

Запис останніх 300 кадрів

 

Якщо натиснути по часовій діаграмі, то гра поставиться на паузу і можна буде обрати точку для детального дослідження

Піки на графіку – просадка FPS та зависання
Maximize – для зручного перегляду

 

Для більш детального аналізу функцій

 

Більш детальна інформація

 

 

Категорії 

  • CPU – завантаження процесора
  • Rendering – генерація зображень
  • Memory – пам'ять
  • Audio навантаження
  • Video навантаження
  • Physics – фізика 3D
  • Physics (2D) – фізика 2D
  • Network – мережа
  • UI – інтерфейс користувача
  • Global Illumination – можна запікати

 


1.

Щоб не робити пошук камери щоразу при використанні Camera.main

Camera camera;

void Start()
{
  camera = Camera.main; 
}


2. В Update - FindObjecOfType<Camera>() призводить до просідання FPS
Рішення 1 - покласти в змінну на старті
Рішення 2 - якщо об'єкт з'явився після старту - один раз знайти в if і записати в змінну (зробити кешування об'єкту)

 
3. GetComponent - їсть трохи ресурсів
Якщо об'єкт використовується багаторазово

Rigidbody2D rb;

void Start()
{
  rb = GetComponent<Rigidbody2D>();
}

 
4. Reycast трохи тяжкий
Рішення - робити промінь лише коли натискають на клавішу


5. Overlap потребує більше ресурсів ніж Reycast
Рішення - робити перевірку 2 рази в секунду за допомогою таймера чи курутіни

 
6. Глобальні шари - прибирають з Overlap лишні розрахунки


7. OverlapAlloc - їсть менше пам'яті
Потребує масиву:
readonly Collider[] collidersNonAlloc = new Collider[25];


8. Усі нерeхомі об'єкти мають мати галочку static
Це пришвидшить їх обробку
 
 
9. Піків на графіку - теж бажано уникати
Запуск складних функцій
Збирач сміття


10. Статистика

Залежить від ПК та навантаженню системи в даний момент
200 FPS - це гарно для 2D гри
100 FPS - це гарно для 3D гри