- Home /
isTrigger causing object to be non-rigid?
I have a ball that drops from the sky. I have a cube that sits still (rigidbody, no gravity or kinematic) I have that cube collider isTrigger=true. When the ball falls and hits the cube, I have a script that turns the gravity back on. But the ball goes right through the cube. So what I did is this (below code). It works, just wondering if there is a better way? Basically, why does IsTrigger, make the object not have a rigidbody and allow objects to pass through it?
void OnTriggerEnter(Collider otherObject)
{
otherObject.rigidbody.useGravity = true;
otherObject.collider.isTrigger = false;
Debug.Log("Gravity Enabled " + otherObject.ToString());
}
Answer by Joshua · Jun 17, 2011 at 03:41 PM
When a collider is not a trigger it's used for collision detection, for instance when falling it won't fall through something. When it is a trigger however, it is used for triggering instead. If you want both collision and triggering you can either switch it off, like you did, or give the gameObject an empty gameObject as child, and give this empty gameObject a collider as well.
Answer by Anxo · Jun 17, 2011 at 03:46 PM
http://unity3d.com/support/documentation/ScriptReference/Collider-isTrigger.html
Is trigger is a way for you to send messages when a rigidbody reaches a point in space but you do not want it to physically react to the object.
Example:
A finish line at the end of a race would be a trigger, you dont want the cars to run into a wall but you want them to send a message when they get there, so you put a invisible box, give it a collider and turn it to a trigger.
what if the invisible box fall down because he is trigger ?? that is my problem right now i want to make both of player and enemy trigger then they can walk on each others but the problem they fall down what should i do ?? please answer me i've been searching all the day