Hello dearchris
I’m sorry to hear you’re having problems with Pure Pool.
As you suggest, I think this is occurring because you’re releasing an object that’s already in the pool. I would generally recommend your own code is aware of whether or not the GameObject has been acquired from the pool, or returned to it. If you keep a reference to the spawned GameObject, you should set it to null when you’ve returned it to the pool, so you know not to continue using it.
If you really need to, you can obtain the PoolableGameObject component on the object (every object created by the pool will have this component), and check the IsInPool property. Sample code would be something like this:
if (myObject.GetComponent<PoolableGameObject>().IsInPool) {
// Release here.
}
I hope that helps, and please do let me know if you need any further assistance.
Kind regards,
Mark