Because you can't destroy objects from within a physics callback such as OnTrigger. Set a variable instead such s "hasbeenDestroyed = true", and check for it in the Update function.This is just how Unity works. You cannot destroy things inside a physics callback. OnTrigger is a physics callback.