Destroying Gate by hitting a switch

Hey all,

I'm very new to scripting and Unity in general. I'm trying to create a level where the player would hit a switch and it would destroy a gate blocking the way to the end of the level.

var Gate : GameObject;
var Key : GameObject;
var isSwitch = false;
var isKeyHit = false;

function Update()
{     
  if (isKeyHit == true)
  {
      Destroy(Gate);
  }
} 
function OnCollisionEnter(collision : Collision) {
  if (isSwitch){
          isKeyHit = true;
          Destroy(Key);
  }
}

Above is the script I wrote, I'm using the First Person prefab for my character and I have a capsule placed on the map to act as the switch and a cube for the gate which both have the above script attached to it. It doesn't work though :(

Can anyone help me out with this, all it needs to do is have the player hit that switch/key so that the gate is destroyed

Any help would be greatly appreciated

One of the objects needs a non-kinematic rigid body to register a collision. Might be better to keep key values in one object like the player to keep track of things.

You can do an OnCollisionEnter(other:Collision){ SendMessage("HitKey",keyNumber)}

And then on the gate do a similar send message to say ("HitGate",gateNumber, gameObject)

And then on the player script you've got 2 functions called HitKey and HitGate

function HitKey(number){
   keyNumber = number;
}

function HitGate(number, GameObj){
   if(number == keyNumber){
      Destroy(GameObj);
   }
}