Raycast/Collider End Level

Hi there, So I am trying to use OnTriggerEnter Collider to end a game. Note that I am using Raycast for all my movements. So most of the end level methods do not work.I know I have to use something to do with Application.LoadLevel, but I am not sure how to write up this code. So how do I write up the code to end a game with raycasting on a tagged object?. This is my movement code so far.

private var insideObject:Transform;

private var okToMove:boolean;
private var showingMission:boolean;
function Start(){
	insideObject=transform.Find("Capsule");
	okToMove=true;
	showingMission=false;
}
function Update () {
	if(okToMove){
	//Debug.Log(insideObject.rotation.eulerAngles);
var dwn = transform.TransformDirection (Vector3.down);
var fwd = transform.TransformDirection (Vector3.forward);
var bk = transform.TransformDirection (Vector3.back);
var r = transform.TransformDirection (Vector3.right);
var l = transform.TransformDirection (Vector3.left);
var forwardPos:Vector3=transform.position + fwd; 
var backwardPos:Vector3=transform.position + bk;
var rightPos:Vector3=transform.position + r;
var leftPos:Vector3=transform.position + l;

var hit:RaycastHit;

Debug.DrawRay(forwardPos,dwn,Color.green,5.0); 
if (Input.GetKeyDown(KeyCode.UpArrow)) {


 if (Physics.Raycast (transform.position, fwd, hit,1)) {
       print ("There is something in front of the object!");
			if(hit.collider.gameObject.tag!="Push"){
	transform.position += Vector3.up;
	
			}
			else{
				   print ("Push!");
				   
				  hit.collider.gameObject.transform.position += Vector3.forward;
				   transform.position += Vector3.forward;
				
			}
			
    }else{
	Debug.Log("nothing in front");
	

			
			
			
			
	if (Physics.Raycast (forwardPos,dwn, 11)) {
	transform.position += Vector3.forward;
				//did we move to an empty space ?
	if (!Physics.Raycast (transform.position,dwn, .5)) {
	okToMove=false;
	InvokeRepeating("dropDown",1.0,1.0);
	
					
}
				
}
			
}
insideObject.rotation.eulerAngles.y=0;
}



if (Input.GetKeyDown(KeyCode.DownArrow)) {

 if (Physics.Raycast (transform.position, bk, hit,1)) {
       print ("There is something in front of the object!");
			if(hit.collider.gameObject.tag!="Push"){
	transform.position += Vector3.up;
			}else{
				   print ("Push!");
				  hit.collider.gameObject.transform.position += Vector3.back;
				   transform.position += Vector3.back;
				
			}
			
    }else{
	Debug.Log("nothing in front");
			
			
	if (Physics.Raycast (backwardPos,dwn, 6)) {
	transform.position += Vector3.back;
				//did we move to an empty space ?
	if (!Physics.Raycast (transform.position,dwn, .5)) {
	okToMove=false;
	InvokeRepeating("dropDown",1.0,1.0);
					
}
				
}
			
}
	
insideObject.rotation.eulerAngles.y=180;
}
if (Input.GetKeyDown(KeyCode.RightArrow)) {

if (Physics.Raycast (transform.position, r, hit,1)) {
       print ("There is something in front of the object!");
			if(hit.collider.gameObject.tag!="Push"){
	transform.position += Vector3.up;
			}else{
				   print ("Push!");
				  hit.collider.gameObject.transform.position += Vector3.right;
				   transform.position += Vector3.right;
				
			}
			
    }else{
	Debug.Log("nothing in front");
			
			
	if (Physics.Raycast (rightPos,dwn, 6)) {
	transform.position += Vector3.right;
				//did we move to an empty space ?
	if (!Physics.Raycast (transform.position,dwn, .5)) {
	okToMove=false;
	InvokeRepeating("dropDown",1.0,1.0);
	
					
}
				
}
			
}

insideObject.rotation.eulerAngles.y=90;
}
if (Input.GetKeyDown(KeyCode.LeftArrow)) {

		
 if (Physics.Raycast (transform.position, l, hit,1)) {
       print ("There is something in front of the object!");
			if(hit.collider.gameObject.tag!="Push"){
	transform.position += Vector3.up;
			}else{
				   print ("Push!");
				  hit.collider.gameObject.transform.position += Vector3.left;
				   transform.position += Vector3.left;
				
			}
			
    }else{
	Debug.Log("nothing in front");
			
			
	if (Physics.Raycast (leftPos,dwn, 6)) {
	transform.position += Vector3.left;
				//did we move to an empty space ?
	if (!Physics.Raycast (transform.position,dwn, .5)) {
	okToMove=false;
	InvokeRepeating("dropDown",1.0,1.0);
	
					
}
				
}
			
}
insideObject.rotation.eulerAngles.y=-90;
}
}

	
	

if (Physics.Raycast (transform.position,dwn,hit, .5)) {
	
	if(hit.collider.gameObject.tag=="HasMission"){
		Debug.Log("has mission");
		if(!showingMission){
			showingMission=true;
			var t:Timer=GameObject.Find("Timer").GetComponent("Timer") as Timer;
			t.startTimer();
			
		}
	}
	
					
}
}
function dropDown(){
	transform.position += -Vector3.up;
	var dwn = transform.TransformDirection (Vector3.down);
	if (Physics.Raycast (transform.position,dwn, .5)) {
		okToMove=true;
		CancelInvoke();
		
	}
}

I’m not really sure what you’re asking. You seem to know how to use Raycast so why don’t you do a Raycast from your object that represents ending the level to see if it hit the player, then simply do something like:

Application.LoadLevel(Application.loadedLevel+1);

Alternatively a better approach would be to set your “EndGame” object to be a trigger and do something like:

void OnTriggerEnter(Collider other) {
    // Move to next level if player hit me
    if (other.gameObject.tag == "Player")
        Application.LoadLevel(Application.loadedLevel+1);
}