Я создаю игру, в которой мне нужно много звуковых эффектов. Я создал пул объектов, чтобы эффекты могли использовать их повторно. Моя проблема заключается в том, как мне написать хорошее решение для пула, не создавая пул для каждого типа звука. Функция проверки пула возвращает первый звук в списке.
Это маленькое грязное решение проверяет, имеет ли элемент, который мы заимствуем из пула, тот же звук, который я хочу создать. Если это тот же самый звук, я не создаю звук снова. Если это не так, я создаю его, даже если знаю, что в пуле есть экземпляры правильного звука.
var item : ISoundItem = _soundPool.checkOut();
if(item.name != name)
item.create(name, _soundFactory.create(name), config);
Это грязное решение сократило число моих экземпляров с сотен до семи, но я думаю, что смогу оптимизировать его еще больше.
Я думал передать имя звука в функцию проверки, но действительно ли стоит каждый раз перебирать пул?
Любые идеи?