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
}
}
Good day.
Why did you post your code twice?
WE see how you spawn enemies, very good... but we dont see how enemies are moved, howthey are configured (inspector).... how do you expect we see what is happening....
Sorry I didn't mean to. I will attach now
Your answer
![](https://koobas.hobune.stream/wayback/20220612191659im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Flag capture with spawning and destroying gameObject 0 Answers
[C#] Only one instantiate object is working, the rest is not.. Help meee 0 Answers
Unet: Spawn bullet - client does not have a reference of bullet 1 Answer
Unity2D: How to destroy spawned object once it exit out of camera's view? 1 Answer
Spawn player and scale 0 Answers