Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable or enable collisions based on object tag Unity 2d

Tags:

unity3d

I want to disable or enable collision with object in unity 2d game based on its tag. Lets say I have object with tag "foo1" and objects with tag "foo2". If user choose to collide with objects "foo1" then it should not collide with objects "foo2".

How could I achieve this? I tried this:

 void OnCollisionEnter(Object other)
 {
      if (other.tag == "foo1")
          collider.enabled = false;
 }

But this is not working for two reasons. First object has to have isTrigger set to true (this could not be set for objects that serves as ground) and if I disable entire collider then object will fall through ground.

I am new to unity and I will study it in more details but I am asking for quick help and maybe idea how to do this?

like image 415
gorgi93 Avatar asked Nov 29 '13 20:11

gorgi93


1 Answers

Instead of doing this via tags, you might want to have a look at layers.

By assigning different objects to different layers, you can set them to either collide with each other, or ignore any potential collisions. You can achieve this at

Edit->Project Settings->Physics

where you can edit the layer collision matrix, to enable or disable collisions between layer elements.

like image 177
Bart Avatar answered Sep 27 '22 23:09

Bart