Can you stop objects which have isTrigger enabled from falling through the ground
well I know this is probably a really stupid question but can you and if so how please? thanks
Answer by Fredex8 · Mar 01, 2016 at 03:32 AM
The solution depends on what kind of object it is and what you need it to do.
If you just want the trigger object to be stationary and unaffected by physics then you could set it to kinematic and disable gravity, freeze the position or just remove the rigidbody entirely if the things colliding with it are all going to have a rigidbody anyway.
If it is something which you do want affected by physics and moving around then you're probably best off not having it set as a trigger and just using a normal collider.
If it is something more complex required that neither of these problems fixes then using an empty gameobject as a parent with a collider on the parent and the trigger on the child may work for you. Depends what you need that trigger for really.
Answer by Magius96 · Feb 29, 2016 at 08:19 PM
I'm assuming that the ground also has a RigidBody but is not a trigger. Add a script to the ground that watches for trigger collisions, and test the type of collision being fired. If the trigger being fired is from one of your trigger objects, set that objects velocity accordingly to stop it from moving.
I believe that you'll still have an issue where the trigger object stops at the collision then slowly slides down through it. In general if you need an object to stop upon collision with another object, then it should not be a trigger. But I get it if that object should also not physically collide with another object.
Answer by Placus_Brutus · Mar 01, 2016 at 08:16 AM
Depending on your needs:
1: Turning off gravity on your gameObject, though if you need it to fall, this might not be what you want.
2: You could use a RayCast going down from your object and check if the RayCast hits the ground. You can set the distance to the RayCast however far you need to stop.
3: Locking the Y position of your object's RigidBody and turning off gravity. This is what I usually use and recommend, assuming that you don't need the object to fall later.
4: Like what Magius96 said, you could use OnTriggerEnter to check if they collide and adjust the velocity.
Your answer
Follow this Question
Related Questions
Coin Magnet Collider Overlap 0 Answers
OnMouseDown not working under Character Conroller 0 Answers
Can not change isTrigger to true 1 Answer
Collision With Text 0 Answers