- Home /
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
Answer by spinaljack · May 03, 2010 at 11:47 AM
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); } }
this way you can have a set of keys for different gates on the player
You were right, my main problem was that I hadn't got the script on my player, great idea about the numbers for multiple gates. Thanks a lot :)
Your answer
Follow this Question
Related Questions
Destroy All of One One object on collision 1 Answer
Destroy an object with another one. 1 Answer
Collision with a coin 0 Answers