Next Scene Script Help

I have this script to go to the next scene -

// Load the level named “Map_Select”.

Application.LoadLevel (“Map_Select”);

http://unity3d.com/support/documentation/ScriptReference/Application.LoadLevel.html

but it changes right away. I want it to change when i click on a box with Box Collider. Any help???

This is a lot of code to answer your question – but it is generally how I do clickable buttons from content (i.e. out of Maya).
I have a button of whatever shape and texture, and a plane that represents the click area, and I name that plane ‘collider’.

This first script is GUITouchBase.cs. It is the base class that handles generic click events. The second script is the place where you’d handle these click events and call Application.LoadLevel()

using UnityEngine;
using System.Collections;

public class GUITouchBase : MonoBehaviour 
{
	private MeshCollider plane;
	private Transform collision;
	
	private RaycastHit hit;	
	public float rayDepth= 100.0f;
	
	public delegate void OnTouchedDelegate();
	public OnTouchedDelegate TouchedDelegate;
	
	void Start ()
	{		
		// content requirement: provide a mesh called 'collider'
		// that will be raytested against.
		collision = gameObject.transform.FindChild("collider");
		
		collision.renderer.enabled = false;
		
		plane = collision.gameObject.AddComponent<MeshCollider>();
		
		MeshFilter filter = collision.gameObject.GetComponent<MeshFilter>();
		
		plane.sharedMesh = filter.mesh;
	}	
	
	
	void Update ()
	{
		if ( Input.GetMouseButtonDown( 0 ) )
		{			
			Ray ray = Camera.main.ScreenPointToRay( Input.mousePosition );
			
			if ( plane.Raycast( ray, out hit, rayDepth ) )
			{
				if ( TouchedDelegate != null )
				{
					OnTouched( TouchedDelegate );
				}
			}
		}
	}
	
	public void OnTouched (OnTouchedDelegate d)
	{
		if (d != null)
		{
			d ();
		}
	}
}

And here is the second script – the one you’d actually attach to your button object.

using UnityEngine;
using System.Collections;

public class GUILoadLevelButton : MonoBehaviour
{	
	private GUITouchBase   		 toucher;
	
	void Start ()
	{
		toucher = gameObject.AddComponent<GUITouchBase>();
		
		toucher.TouchedDelegate = new GUITouchBase.OnTouchedDelegate(LoadLevel);
	}

	// If there is a successful raycast hit in the GUITouchBase Update method,
	// this function will get called here because we assigned it to the 
	// TouchedDelegate of the GUITouchBase class.
	public void LoadLevel()
	{		
		Application.LoadLevel("Map_Select");
	}
}