- Home /
Preventing collision with floor on game start?
I have a cube placed on a plane. When I start the game, a collision occurs between the two. I want to prevent this collision because it is triggering a sound effect called within an OnCollisionEnter function.
The plane is at (0,0,0) with a y-scale of .00001. The cube has a scale of 5 and is placed at (0, 2.48, 0). The cube has Y = 2.48 rather than 2.5 because its falls from 2.5 to this point once the game starts. Even when set at 2.48, the cube moves by an infinitesimally small amount on the X and Z (from 0 to ~-2.434473e-25) .
Things I have tried aside from tweaking the positions of the cube:
modifying the Physics setting 'min penetration for penalty'. This prevents the objects from bouncing off one another, but the collision event still occurs.
placement of both the plane and grid using 'snap' to position. Does not help.
This does prevent the collision on the game start:
if (collision.relativeVelocity.magnitude > 0.01){
Debug.Log("collision occurring");
audio.PlayOneShot(crashSound);
}
However, I am hoping to understand if it is possible to prevent the collision altogether?
Answer by PedramAUS · Feb 03, 2013 at 09:54 AM
assign a different layer to the floor and ignore that layer during the collision detection process.
Your answer
Follow this Question
Related Questions
How would I go about setting an exclusive collision, i.e. floor that only reacts to the player? 1 Answer
On Trigger Enter, Collide with object, specific collision 1 Answer
Collision Only being detected on one of the objects involved in the collision - C# 0 Answers
How do Unity manages collisions in a game internally? 0 Answers