@i__egor

Как лучше сделать пул объектов в юнити?

Когда нужно часто спавнить много объектов лучше вместо instantiate и destroy включать, перемещать, настраивать и отключать уже готовые объекты на сцене. В официальном уроке от юнити написано:
public GameObject GetPooledObject()
{
    for(int i=0; i < amountToPool; i++)
    {
         if(!pooledObjects[i].activeInHierarchy)
         {
              return pooledObjects[i]
         }
    }
    return null;
}

То есть все объекты проходятся по очереди пока не будет найден неактивный. То есть чтобы брать таким образом по одному объекту прийдется каждый раз перебирать допустим тысячи объектов. А если еще таких пулов много с разными объектами. Почему бы например не иметь два листа вместо одного, один с ожидающими отключенными объектами, другой с работающими объектами. Если нужно достать, то из ожидающих берем один удаляем там и добавляем к активным, если нужно убрать, наоборот удаляем из листа активных и добавляем лист ожидающих
  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы