how to instantiated object smoothly?[Problem Solved]

n 2D shooting game just like Gradius,when I want to instantiate a wave of enemy squad.I declared a gap time among each squad members.But it turns out that the enemies doesn’t instantiated smoothly. Heres are my code and snapshot:

 public class SpawnEnemy : MonoBehaviour
{
     public Transform[] spawnPositions;
     public GameObject[] enemies;     
     public float[] enemyGap;         
     public float[] timeBetweenEnemies;
     public int[] waveEnemyCount;      
     public float startWait = 2;     
     private int waveCount;           
     private GameObject bossDetector;
     void Start()
     {
         StartCoroutine(SpawnEnemyWave());
     }
     IEnumerator SpawnEnemyWave()
     {
         yield return new WaitForSeconds(startWait);
        while(true)                 
         {
             for (int j = 0; j < waveEnemyCount[waveCount]; j++)              
             {
                 Spawn(waveCount);                                          
                 yield return new WaitForSeconds(enemyGap[waveCount]);        
             }
             waveCount++;                                                     
             yield return new WaitForSeconds(timeBetweenEnemies[waveCount]);  
         }
     }
     void Spawn(int waveCount)
     {
         Instantiate(enemies[waveCount], spawnPositions[waveCount].position, spawnPositions[waveCount].rotation);
     }
}


I’ m wondering is there some kind of ways to solve this problem so i can smoothly spawn those enemies?

What do you mean by smoothly?

You want to fade them in? In that case you’d need to modify the material of the object, or isn’t that what you mean?

my fault,the pic didn’t show right。 I want all of the enemies instantiated with a consistant time while keeping the same distance。

wow,I got it!
The fact is the key isn’t this Spawn script but the Move script!
Problem solved and thanks a lot!