This code includes updated code to: StopAllSpawning( )This method is executed within LevelManager, it destroys objects with Component of type: PickUp, ScorePickUp, Hazard, change to fix in your code so it is consistent. It also stops any remaining SpawnPrefab methods waiting to be invoked. You may want to delete the MiniGameManager.cs script, otherwise fix any errors caused there.
Verify if this script needs to be added to the Spawner GameObject
using UnityEngine;publicclassSpawner : MonoBehaviour { [Header("Set in Inspector")]publicGameObject goodPrefab, badPrefab;publicint pauseTime =2; //wait 2 seconds before spawning, //adjust as needed for your gamepublicint numToSpawn =10;//adjust as needed for your gamepublicfloat chanceToSpawnBad =.10f;//adjust as needed for your gamepublicfloat xRange =8.0f;//adjust as needed for your gamepublicfloat yRangeTop =-2.0f; //adjust as needed for your gamepublicfloat yRangeBottom =-3.5f;//adjust as needed for your gamepublic bool activeSpawning =false;// Use this for initializationvoidStart() {//activeSpawning = true; ///remove later when we start spawning from another class//StartSpawning(); //remove later }publicvoidStartSpawning() //will be called from another class {for (int i =0; i < numToSpawn; i++) {Invoke("SpawnPrefab", pauseTime * i *2); } }/// <summary>/// Spawns one prefab: good or bad with some probability of bad/// </summary>publicvoidSpawnPrefab() {if (activeSpawning) {Vector3 position =transform.localPosition;position.x=Random.Range(-xRange, xRange);position.y=Random.Range(yRangeBottom, yRangeTop);float rand =Random.value; //returns value between 0.0 - 1.0 (property)GameObject prefab;if (rand < chanceToSpawnBad) { prefab =Instantiate(badPrefab, position,transform.rotation); //instantiate bad }else//instantiate good { prefab =Instantiate(goodPrefab, position,transform.rotation); }prefab.transform.SetParent(this.transform); //set Spawner as parent of prefabs in Hierarchy // Debug.Log("Spawned 1"); } } //end SpawnPrefabpublicvoidStopAllSpawning() {CancelInvoke("SpawnPrefab"); activeSpawning =false;DestroySpawnedObjects(); }voidDestroySpawnedObjects() {PickUp[] items =FindObjectsOfType<PickUp>();foreach (PickUp item in items ) {Destroy(item.gameObject); }//if using scoreItemsScorePickUp[] scoreItems =FindObjectsOfType<ScorePickUp>();foreach (ScorePickUp scoreItem in scoreItems) {Destroy(scoreItem.gameObject); }Hazard[] hazards =FindObjectsOfType<Hazard>();foreach (Hazard hazard in hazards) {Destroy(hazard.gameObject); } } //end DestroySpawnedObjects////used in Project 1: miniGameManagerpublicvoidDestroyAllPickups() {PickUp[] items =FindObjectsOfType<PickUp>();foreach( PickUp item in items ) {Destroy(item.gameObject); } }} //end of class