Array empties values on RunTime?

I am trying to create an array from my building objects I have created. My script BuildingManager holds an array of my building objects. The array is public and I have dragged the three cubes shown in the picture into my array(Should they be prefabs not in the instance of the game?)

Problem: When I run the game the array gets cleared to be the values I have specified under my BuildManager script. In the start function of my BuildManager it declares the size as five. I want the values to be the one the developer sets in the Unity Inspector!

Note: I realize some of my functions in BuildMenu do nothing currently. I am trying to just figure out why the array is cleared to empty objects before I implement them! Thanks.

Before running the game

[23661-capture.jpg*|23661]

After running the game

[23662-capture1.jpg*|23662]

My scripts are as follows:

Building

using UnityEngine;
using System.Collections;

public class Building : MonoBehaviour {

	public int curHealth=100;
	public int maxHealth=100;
	public int regenRate=2;
	public bool isAlive=true;
	
	public void destroy()
	{
		isAlive=false;
		this.destroy();
	}

	public void create()
	{
		isAlive=true;
	}

	public bool getAlive()
	{
		return isAlive;
	}

	public void hpUpdate()
	{
		if (curHealth<=0)
		{
			isAlive=false;
			destroy ();
		}
		else{

			if(curHealth<(maxHealth-regenRate))
			{
			curHealth+=2;
			}

		}
	}


	void FixedUpdate()
	{
		hpUpdate();
	}
}

BuildingManager

using UnityEngine;
using System.Collections;

public class BuildingManager : MonoBehaviour {

	public GameObject[] buildings;

	void Start(){

		buildings=new GameObject[5];

	}
}

BuildMenu

using UnityEngine;
using System.Collections;

public class BuildMenu : MonoBehaviour {

	public GameObject manager;

	BuildingManager buildingmanager; 
	GameObject[] buildingsArray;

	// Use this for initialization
	void Start () 
	{
		//gets the component of the build manager and assigns it to the type BuildManager var
		buildingmanager=manager.GetComponent<BuildingManager>();

		//set the array of gameobjects to the BuildingManager instance?????
		buildingsArray=buildingmanager.buildings;
	}

	void OnGUI () 
	{
		//if we get the input draw the window
		if(Input.GetButtonDown("Build"))
		{
			//draw the window
			drawMenu();
		}
		//then de render if f is hit again
	}

	void drawMenu()
	{
		GUI.Box(new Rect(30,30,Screen.width/2,Screen.height/2), "Header box");

		for (int i=0;i<buildingsArray.Length;i++)
		{
		
			Debug.Log(buildingsArray*);*
  •  }*
    
  •  //if a button is selected we want to start calling the raycast* 
    
  •  //and destroy the window*
    
  •  //position from the mouse and rendering* 
    
  •  //something to show the position on the users screen*
    
  • }*
    }

When you run Start() your are creating a new array thus removing the content setup through inspector. Remove that line and just use the array.

void Start(){
 
       buildings=new GameObject[5]; // <---- Remove this line
 
    }