bharddwaj
bharddwaj

Reputation: 15

detecting collisions and destroying gameObjects in Unity

So I'm attempting to create a 2D game in Unity where the gameObjects would be destroyed upon hitting the walls. So i decided to use the isTrigger function and add the script to each of the walls. However, I do not know why the gameObjects don't get destroyed. I have tried to set Collision type as both discrete and continuous for the walls and gameobjects and I've also added static rigidbodys to the walls to see if that would help and even tried changing the size of the collisionbodys of the walls.

Here is the code for the wallscript

public class wallScript : MonoBehaviour {

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

}


public void OnTrigger2D(Collider2D other)
{
    if (other.tag == "player01")
    {
        Destroy(other.gameObject);
    }

}}

p.s. Even if I remove the conditional statement Destroy() still does not work

Upvotes: 1

Views: 680

Answers (2)

Soumitra Shewale
Soumitra Shewale

Reputation: 175

To Fix The Problem You Are Facing, First Select The Wall Sprite In The Scene, Scroll Down To The Collider And Make Sure Is Trigger Is Checked.

Other Than That Just Check If The Tag You Typed Into The Code Matches The Player You Are Trying To Destroy. Remember, It's Case Sensitive!

After That The Code Should Run Just Fine.

Upvotes: 0

ThePyzhov
ThePyzhov

Reputation: 251

You should use void OnCollisionEnter2D(Collision2D other) {...} instead of void OnTrigger2D(Collider2D other). And uncheck Is Trigger checkbox on your object's Collider.

Upvotes: 1

Related Questions