Camera.enable not turning on the camera

using UnityEngine;
using System.Collections;

public class Town : MonoBehaviour
{

private Rect windowRect = new Rect (Screen.width / 2 - 75, Screen.height / 4, 150, 200);

public Camera CastleCamera;
public Camera InnCamera;
public Camera ShopCamera;
public Camera TavernCamera;
public Camera TempleCamera;
public Camera TowerCamera;

	public Camera TownCamera;

void Start ()
{
	TownCamera.name = "TownMenu";
	CastleCamera.name = "CastleMenu";
	InnCamera.name = "InnMenu";
	ShopCamera.name = "ShopMenu";
	TavernCamera.name = "TavernMenu";
	TempleCamera.name = "TempleMenu";
	TowerCamera.name = "TowerMenu";
	
	TownCamera.enabled = true;
	
	CastleCamera.enabled = false;
	InnCamera.enabled = false;
	ShopCamera.enabled = false;
	TavernCamera.enabled = false;
	TempleCamera.enabled = false;
	TowerCamera.enabled = false;
	
	


}

void OnGUI ()
{
	if(TownCamera.enabled)
	windowRect = GUI.Window (0, windowRect, WindowFunction, "Town");
	
}

private void WindowFunction (int winID)
{
	
	GUILayout.BeginArea (new Rect (25, 40, 100, 150));
	CastleButton ();
	TavernButton ();
	InnButton ();
	ShopButton ();
	TempleButton ();
	TowerButton ();
	GUILayout.EndArea ();
	
}


private void CastleButton ()
{
	if (GUILayout.Button ("Castle")) { 
		TownCamera.enabled = false;
		CastleCamera.enabled = true;
		

	}
	
}... more of the same

so im not geting any errors but what is happening is that when i press a button the .enabled get switched appropriately but the cameras do actually turn on

here is the script for the castle Camera

using UnityEngine;
using System.Collections;

public class Castle : MonoBehaviour{
private Rect windowRect = new Rect (Screen.width / 2 - 75, Screen.height / 4, 150, 200);

public Camera TownCamera;
public Camera CastleCamera;

void Start ()
{

	CastleCamera.name = "CastleMenu";	
	TownCamera.name =  "TownMenu";

}

public Castle()
{
	CastleCamera.enabled = false;
	
}
void Update(){

	
}
void OnGUI ()
{
	if(CastleCamera.enabled)
	windowRect = GUI.Window (0, windowRect, WindowFunction, "Castle");
	
}

private void WindowFunction (int winID)
{
	GUILayout.BeginArea (new Rect (25, 40, 100, 150));
	LeaveButton ();
	GUILayout.EndArea ();
	
	
}

private void LeaveButton ()
{
	if (GUILayout.Button ("Leave")) {
		TownCamera.enabled = true;
		CastleCamera.enabled = false;

	}
}

}

Not a lot to go on, here, but I have a few general ideas…

Check the editor console for errors. If you find any, be sure to post them here.

Check the inspector for whatever object these scripts are attached to. Are the cameras set? And are they set correctly? Hypothetically, setting the same camera twice could cause “awesome” stuff.

You could try adding something to Update() which logs helpful information that could narrow down the problem.

Finally, you might try stepping through the code with MonoDevelop’s built-in debugger.

Thanks for your help turns out there was a weird conflict between having gui script on each camera. Rewrote it with all the code only in the town script.