public void Update()
{
DelayedInstantiateData instantiateData;
for (int i = 0; i < delayedInstantiateDataBuffer.count; i++)
{
instantiateData = delayedInstantiateDataBuffer[i];
if (Time.time - instantiateData.timestamp > instantiateData.delay)
{
var obj = PoolInstantiate(instantiateData.prefab, instantiateData.position, instantiateData.rotation);
delayedInstantiateDataBuffer.RemoveFast(i);
if (instantiateData.callback != null)
{
instantiateData.callback(obj);
}
}
}
DelayedDestroyData destroyData;
for (int i = 0; i < delayedDestroyDataBuffer.count; i++)
{
destroyData = delayedDestroyDataBuffer[i];
if (Time.time - destroyData.timestamp > destroyData.delay)
{
PoolDestroy(destroyData.target, removeParent: destroyData.removeParent);
delayedDestroyDataBuffer.RemoveFast(i);
if (destroyData.callback != null)
{
destroyData.callback();
}
}
}
}