Basically I have this script attached to a prefab which is instantiated by another script, for some reason when i try to destroy this prefab after its scale reaches Vector3(0.1,0.1,0.1) it does not work.
I think the problem is that you are using "if(transform.localScale == Vector3(0.1,0.1,0.1))" instead of "if(transform.localScale <= Vector3(0.1,0.1,0.1))". With the "==" it will only be destroyed in the one frame that it has that value, when it could in reality easily pass that value without hitting it.