How do i fix this error?
i cannot figure hwo to fix this?
I need to destroy the newly instantiated spawns only not original so it can keep instantiating them
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.Object.Internal_InstantiateSingle (UnityEngine.Object data, Vector3 pos, Quaternion rot) (at C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineObjectBindings.gen.cs:51) UnityEngine.Object.Instantiate (UnityEngine.Object original, Vector3 position, Quaternion rotation) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.cs:157) UnityEngine.Object.Instantiate[GameObject] (UnityEngine.GameObject original, Vector3 position, Quaternion rotation) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.cs:207) spn2.Update () (at Assets/water/spn2.cs:55)
using UnityEngine;
using System.Collections;
public class spn2 : MonoBehaviour
{
public GameObject EasyEnemey;
public GameObject MediumEnemey;
public GameObject HardEnemey;
public Transform[] SpawnPoints;
public float TimeBetweenSpawns;
public int NumberOfEnemiesToSpawn;
public int NumberOfMediumEnemiesToSpawn;
public float EasyChance;
public float MediumChance;
public float HardChance;
private int waveNumber;
private float spawnTimer;
private int numberOfEnemies;
private int numberOfMediumEnemies;
// Use this for initialization
void Start()
{
//this below is the time to spawn so if 4 , every 4 seconds 1 will spawn etc
this.spawnTimer = 3.0f;
this.waveNumber = 0;
float totalChance = this.EasyChance + this.MediumChance + this.HardChance;
if (Mathf.Abs(totalChance - 1.0f) > 0.0001f)
{
//Debug.LogWarning("Warning: The chances should add up to 1.0 (" + totalChance + " currently)");
}
}
// Update is called once per frame
void Update()
{
this.spawnTimer -= Time.deltaTime;
//Debug.Log("Counter: " + spawnTimer);
if (this.spawnTimer <= 0.0f)
{
//Debug.LogWarning("Spawining");
Transform spawnPoint = SpawnPoints[Random.Range(0, SpawnPoints.Length)];
Vector2 spawnPos = spawnPoint.position;
Quaternion spawnRot = spawnPoint.rotation;
GameObject tempEnemy = null;
switch (this.waveNumber)
{
case 0:
tempEnemy = Instantiate(EasyEnemey, spawnPos, spawnRot) as GameObject;
this.numberOfEnemies++;
if (this.numberOfEnemies >= this.NumberOfEnemiesToSpawn)
{
this.waveNumber++;
}
break;
case 1:
tempEnemy = Instantiate(MediumEnemey, spawnPos, spawnRot) as GameObject;
this.numberOfMediumEnemies++;
if (this.numberOfMediumEnemies >= this.NumberOfMediumEnemiesToSpawn)
{
this.waveNumber++;
}
break;
case 2:
float randomFloat = Random.value;
if (randomFloat < this.EasyChance)
{
tempEnemy = Instantiate(MediumEnemey, spawnPos, spawnRot) as GameObject;
}
else if (randomFloat < this.EasyChance + this.MediumChance)
{
tempEnemy = Instantiate(MediumEnemey, spawnPos, spawnRot) as GameObject;
}
else
{
tempEnemy = Instantiate(HardEnemey, spawnPos, spawnRot) as GameObject;
}
break;
}
this.spawnTimer = this.TimeBetweenSpawns;
if (tempEnemy != null)
{
//Destroy(tempEnemy, 2.6f);
}
}
}
}