Prefabs into array than delete them when user interacts

I am building a tower in [Jenga][1] style. If I just instantiate the prefab which is made of 3 cubes eg. one row of the tower it jsut works fine. But I am unable to destroy those clones when I want to reset the map on a keypress.

Here is the script which just generates on the first row. How is it possible to destroy the old cubes than build the exact same tower again?

using UnityEngine;
using System.Collections;

public class TowerMaker : MonoBehaviour
{

		public int height = 15;
		public float dist = 0.1f;
		public Transform block;
		GameObject[] _tower;

		// Use this for initialization
		void Start ()
		{
				BuildTower ();
		}

		void Update ()
		{
				if (Input.GetButtonDown ("Reset")) {
						BuildTower ();
				}
				_tower = new GameObject[height];
		}

		void BuildTower ()
		{
				//float x = 10;
				int i = 0;
				for (float y = 0; y < (height); y++) {
						if (y % 2 == 0) {
								_tower  _= Instantiate (block, new Vector3 (10f, y * 0.25f + dist, 0), Quaternion.Euler (0, 90, 0)) as GameObject;_
  •  						i++;*
    
  •  				} else {*
    

_tower = Instantiate (block, new Vector3 (10f, y * 0.25f + dist, 0), Quaternion.Euler (0, 0, 0)) as GameObject;
* i++;*
* }*
* }*
* }*
}
_*[1]: http://en.wikipedia.org/wiki/Jenga*_

1 Answer

1

I have sorted out the error.

_tower  _= (Instantiate (block, new Vector3 (10f, y * 0.25f + dist, 0), Quaternion.Euler (0, 90, 0)) as GameObject);_

this line simply doesn’t put the instantiated objects into the array.

  •  void DestroyTower ()*
    
  •  {	*
    
  •  		//Find all objects with tag "Block"*
    
  •  		_tower = GameObject.FindGameObjectsWithTag ("Block");*
    
  •  		for (int i=0; i<_tower.Length; i++)*
    

Destroy (_tower .gameObject);
* }*
this sorted out the problem.