NullReferenceException on TransformArray


I am trying to make a MoleHandler script to spawn Mole prefabs on the designated places. When a Mole dies it should make its Transform free for other Moles. I store the open places in a Transform , but when I try to add a new Transform at runtime, I get the NullReferenceException.

code in mole prefab:

if (DeathTimer >= TimeAfterDeath) 
			Debug.Log ("Sending transform to parent: " + gameObject.transform.position);
			transform.parent.SendMessage("AddSpawnPointToArray", this.transform);
			Debug.Log("Destroying mole now!");

AddSpawnPointToArray method:

void AddSpawnPointToArray(Transform newSpawn)
		Debug.Log ("Receiving spawnpoint: " + newSpawn.position);
        List<Transform> newSpawnPointsList = new List<Transform>();
        foreach (Transform spawn in SpawnPoints) 
		SpawnPoints  = newSpawnPointsList.ToArray();
		Debug.Log ("Spawnpoint nr1 end of function: " + SpawnPoints [0].position);
		Debug.Log ("nr of Elements in SpawnPoints end of function: " + SpawnPoints.Length);

Everything goes great until the function terminates and I try to access any value in SpawnPoints (which is my Transform ). I reckon it has something do with passing as reference and then destroying the object? But I’ve no idea how to pass it as a copy.

Any advice on how to fix this or how to write this simpler is welcome

Thats because what you are doing is essentially sending a reference to your transform to your array but then once you call Destroy on the gameobject your transform is also destroyed!

Try cloning the transform (I think you can just do transform.clone) or instead keep a reference to your spawnpoints somewhere else and never destroy them (better solution since cloning and destroying things is always expensive)