"With Great Power Come Great Respoinsibility"
This is definitely true with code, seems like I never do anything fully right the first time anymore. Objects were not returning to pool correctly, which results in no enemies spawning after a while. This has been fixed. Also enemy movement have been moved to a FixedUpdate like player movement was to prevent it being tied to physics or FPS.
Short list:
1. Pooling fixed, enemies now returned to pool (correctly) and are like-wise able to be pooled again. This is a method to re-use objects instead to creating new ones every time an enemy spawns.
2. Enemy movement fixed, no longer tied to game physics or FPS.