- Home /
box collider inside a box collider
I have two scripts that i use the first one is for a light switch button that toggles on and off, so it needs a box collider to make it functional, i also have another script that needs to go around the light switch, when its triggered it displays a gui saying "turn the light on" but when i enter the zone that tells me to "turn the light on" i cant turn the switch on, any ideas?
thanks
Answer by YoungDeveloper · Aug 11, 2013 at 11:40 PM
You could tick the second (biggest) collider as trigger and use OnTrigger function.
That would mean you'd have to have a 3D object (Rigidbody) actually entering/touching the collider though.
Indeed, but we really don't know what kind of project he is making. Considering that there is no question tag related to raycasting, i gave him an answer related to colliders.
Answer by Joyrider · Aug 11, 2013 at 11:44 PM
I'm guessing you are using a raycast to change the switch.
You could either use a layermask, and have your switches in a particular layer
or, since a regular raycast stops at the first collision,
use **RayCastAll**, in order to get all colliders on a given ray. And parse through the list of colliders until you find one with a particular tag, name or script/component
Answer by j_zeitler · Apr 01, 2016 at 02:22 PM
I think the Unity Manual is actually wrong here. For example, the method OnCollisionStay says: "OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider."
I interpret this as OnCollisionStay should be called for every collider that my rigidbody/collider is touching. This is not the case for a scene with e.g. two boxcolliders (+ my rigidbody/collider) where one boxcollider defines a volume that is a proper subset of the other boxcollider. In such case (as far as my experiments go), OnCollisionStay will only be called for the outer/bigger boxcollider given that my rigidbody/collider is inside or touching both boxcolliders.