- Home /
Enemy collision with wall, destroys wall
Hello, I am making a game where the player can run away from zombies. I would like to make it so that curtain walls can break once the zombie collides with it (touches it). I would like it to be around 3 seconds for the wall to get destroyed or disappear. I would like an example of code that I can put on the wall that has a var which I would put the zombie or enemy. I am still early at coding but know some things. Any help would be great thank you.
Answer by aldonaletto · Dec 19, 2012 at 02:57 AM
A simple solution is to use Destroy(wall, 3) when the zombie collides with the wall. If the zombie is a CharacterController, you can use something like this in its script:
function OnControllerColliderHit(hit: ControllerColliderHit){
if (hit.gameObject.CompareTag("Wall")){ // tag the curtain as "Wall"
Destroy(hit.gameObject, 3);
}
}
If the zombie is a Rigidbody, use OnCollisionEnter instead:
function OnCollisionEnter(col: Collision){
if (col.gameObject.CompareTag("Wall")){ // tag the curtain as "Wall"
Destroy(col.gameObject, 3);
}
}
Script works wonderfully! Just in case anybody wanted to know: I added some extra code to help make it easier. var time : int; // to have the time that the wall breaks set without going into the code each time. Then, (col.gameObject, time); Again, thank you for the quick response.
Answer by Lilbob · Dec 19, 2012 at 03:55 AM
Does it have to be on the curtain? You could add it to the zombie. Im at work so this isnt tested.
function OnCollisionEnter(c:Collision) { if(c.gameObject.name=="Curtain") { Destroy(c.gameObject,3); } }
Something like that.,
Your answer
Follow this Question
Related Questions
Enemy AI don't collide with objects or rotate. 0 Answers
Precise hitboxes for characters 1 Answer
Player pushback when collide with enemy 2 Answers
Can I make Ai using only a focus script and a bullet script? 1 Answer
Collsions problem 0 Answers