Defender 2d Shooter - Loading Enemies (waves of enemies)


I have this case:

I have a game where you shoot to enemies who come with waves…
Wave 1 - enemies count=2, Wave 2 - count = 4, etc…

For now I have a solution that every ten waves I count how many enemies GameObjects I currently have in my List and I check next ten waves what will be the new maximum of enemies needed. If it will be for example 7 and now I had instantaded in my List only 3 then I count the difference which is 7-3=4 and I additionaly Load 4 enemies GameObjects by Instantate.

The question is:
Is the solution described by me a good way, or I just should load about 80 enemies ( the very maximum amount of enemies at once ) at the Awake and that’s it?

I have heard that instantating during gameplay is really bad idea, but what in this case?
How much time would I lose by instantating 80 GameObjects at Awake?

thanks for answer in advance!

Depends on what you spawning really. If you are gonna instantiate 80 decent poly models + components on start of course you will have quite a laag impact on start.
Either spawn them in time intervals or other smart spawning which could use mesh swithcing. What comes to reusability, pooling objects is very good approach.