Firing Lasers Efficiently

I made a simple galaga clone and my current model has the enemy ships instantiating laser gameObjects and firing them toward the bottom of the screen. I noticed this lags on mobile.
I know Instantiate() is an expensive call, so what would be a better solution?

Object pooling just seems awkward with lasers.

Preload lasers and OnCollision() change laser position to be reused instead of Destroy()?

“Preload lasers and OnCollision() change laser position to be reused instead of Destroy()?”

What you described here is more or less how object pooling works. And yes, if Instantiating is really your bottleneck then you should use object pooling. It’s really easy to write a generic pooler you can reuse for different objects and other Unity projects so it won’t be a wasted time