Object Pooling - це спосіб оптимізації, при якому об'єкти не створюються і не видаляються щоразу, а повторно використовуються. Замість постійного створення нових об'єктів ми заздалегідь створюємо їх певну кількість і просто вмикаємо або вимикаємо за потреби
🔹 Навіщо це потрібно?
Уявімо, що у грі кожної секунди вилітають кулі. Якщо кожного разу використовувати:
Instantiate(bulletPrefab);
Destroy(bullet);
Unity постійно буде:
• створювати нові об'єкти
• виділяти пам'ять
• видаляти об'єкти
Це створює додаткове навантаження на процесор і може викликати просадки FPS
🔹 Як працює Object Pooling?
На початку гри створюється певна кількість об'єктів, наприклад 30 куль. Спочатку всі вони вимкнені
А коли потрібно зробити постріл:
• береться одна вимкнена куля
• переміщується у потрібне місце
• вмикається
Після того як куля влучила або пролетіла певну відстань вона не видаляється, а просто вимикається і повертається в пул
Під час наступного пострілу ця ж куля використовується повторно
🔹 Коли не варто використовувати?
Якщо об'єкт створюється лише один або кілька разів за всю гру, використовувати Object Pooling немає сенсу.
Наприклад:
• головний персонаж
• унікальний бос
🔹 Навіщо це потрібно?
Уявімо, що у грі кожної секунди вилітають кулі. Якщо кожного разу використовувати:
Instantiate(bulletPrefab);
Destroy(bullet);
Unity постійно буде:
• створювати нові об'єкти
• виділяти пам'ять
• видаляти об'єкти
Це створює додаткове навантаження на процесор і може викликати просадки FPS
🔹 Як працює Object Pooling?
На початку гри створюється певна кількість об'єктів, наприклад 30 куль. Спочатку всі вони вимкнені
А коли потрібно зробити постріл:
• береться одна вимкнена куля
• переміщується у потрібне місце
• вмикається
Після того як куля влучила або пролетіла певну відстань вона не видаляється, а просто вимикається і повертається в пул
Під час наступного пострілу ця ж куля використовується повторно
🔹 Коли не варто використовувати?
Якщо об'єкт створюється лише один або кілька разів за всю гру, використовувати Object Pooling немає сенсу.
Наприклад:
• головний персонаж
• унікальний бос