Enemies appear stuck at the top of my game and don't travel down the screen

I am making a space shump game for class and have followed the textbook exactly but for some reason, after I added the following code in order to spawn enemies at random, they no longer travel down the whole screen and instead appear stuck at the top of my game.

here is the code I added

using UnityEngine;                 // Required for Unity
using System.Collections;          // Required for Arrays & other Collections
using System.Collections.Generic;  // Required to use Lists or Dictionaries

public class Main : MonoBehaviour {
    static public Main S;

    public GameObject[]     prefabEnemies;
    public float            enemySpawnPerSecond = 0.5f; // # Enemies/second
    public float            enemySpawnPadding = 1.5f; // Padding for position

    public bool ________________;

    public float            enemySpawnRate; // Delay between Enemy spawns

    void Awake() {
        S = this;
        // Set Utils.camBounds
        Utils.SetCameraBounds(this.camera);
        // 0.5 enemies/second = enemySpawnRate of 2
        enemySpawnRate = 1f/enemySpawnPerSecond;                            // 1
        // Invoke call SpawnEnemy() once after a 2 second delay
        Invoke( "SpawnEnemy", enemySpawnRate );                             // 2
    }

    public void SpawnEnemy() {
        // Pick a random Enemy prefab to instantiate
        int ndx = Random.Range(0, prefabEnemies.Length);
        GameObject go = Instantiate( prefabEnemies[ ndx ] ) as GameObject;
        // Position the Enemy above the screen with a random x position
        Vector3 pos = Vector3.zero;
        float xMin = Utils.camBounds.min.x+enemySpawnPadding;
        float xMax = Utils.camBounds.max.x-enemySpawnPadding;
        pos.x = Random.Range( xMin, xMax );
        pos.y = Utils.camBounds.max.y + enemySpawnPadding;
        go.transform.position = pos;
        // Call SpawnEnemy() again in a couple of seconds
        Invoke( "SpawnEnemy", enemySpawnRate );                             // 3
    }

}

Once I created this to spawn enemies at random, the enemies stopped travelling down the screen and now stay bunched up at the top. I don’t know how to fix it.

using UnityEngine;                 // Required for Unity
using System.Collections;          // Required for Arrays & other Collections
using System.Collections.Generic;  // Required to use Lists or Dictionaries

public class Main : MonoBehaviour {
    static public Main S;

    public GameObject[]     prefabEnemies;
    public float            enemySpawnPerSecond = 0.5f; // # Enemies/second
    public float            enemySpawnPadding = 1.5f; // Padding for position

    public bool ________________;

    public float            enemySpawnRate; // Delay between Enemy spawns

    void Awake() {
        S = this;
        // Set Utils.camBounds
        Utils.SetCameraBounds(this.camera);
        // 0.5 enemies/second = enemySpawnRate of 2
        enemySpawnRate = 1f/enemySpawnPerSecond;                            // 1
        // Invoke call SpawnEnemy() once after a 2 second delay
        Invoke( "SpawnEnemy", enemySpawnRate );                             // 2
    }

    public void SpawnEnemy() {
        // Pick a random Enemy prefab to instantiate
        int ndx = Random.Range(0, prefabEnemies.Length);
        GameObject go = Instantiate( prefabEnemies[ ndx ] ) as GameObject;
        // Position the Enemy above the screen with a random x position
        Vector3 pos = Vector3.zero;
        float xMin = Utils.camBounds.min.x+enemySpawnPadding;
        float xMax = Utils.camBounds.max.x-enemySpawnPadding;
        pos.x = Random.Range( xMin, xMax );
        pos.y = Utils.camBounds.max.y + enemySpawnPadding;
        go.transform.position = pos;
        // Call SpawnEnemy() again in a couple of seconds
        Invoke( "SpawnEnemy", enemySpawnRate );                             // 3
    }

}

Hello you need to add Enemy script to Enemy prefab

hello you need to add Enemy script to Enemy prefab