私はトップハンドルが必要なゲームを構築しています。たくさんの効果音があります。エフェクトを再利用できるように、エフェクトのオブジェクトプールを作成しました。私の問題は、サウンドタイプごとにプールを作成せずに、優れたプールソリューションを作成する方法です。プールのチェックアウト機能は、リストの最初のサウンドを返します。
この少し汚い解決策は、プールから借りたアイテムが私が作成したいのと同じサウンドを持っているかどうかをチェックします。同じ音なら二度と音を出さない。そうでない場合は、プールに正しいサウンドのインスタンスがあることがわかっていても、作成します。
var item : ISoundItem = _soundPool.checkOut();
if(item.name != name)
item.create(name, _soundFactory.create(name), config);
この汚い解決策により、インスタンスは数百から約7に減少しましたが、さらに最適化できると思います。
サウンド名をチェックアウト機能に渡すことを考えていましたが、毎回プールをループする価値は本当にありますか?
何か案は?