I've made things like you can see in many tutorials and forums: - created Physic Material I called "`No bounce`" - set `Dynamic Friction = 0` and `Static Friction = 0` - created a cube and add a `Box collider` with `Material = "No Bounce"` - set `Mass = 1`, `Drag = 0` and `Angular Drag = 0` Now I add another cube for the ground, made it very large and added a `Box collider` with `Material = "No Bounce"` I have 2 problems: - when they collide, the cube bounces (whereas it shouldn't with my configuration) - I've made a script and attached it to the cube, to change the velocity, and set it to `0` when there's a collision: Code (CSharp): using UnityEngine; public class CubeProperties : MonoBehaviour { private Rigidbody _rb; private bool _landing; private void Start() { _rb = GetComponentInParent<Rigidbody>(); } public void OnCollisionEnter(Collision collision) { Debug.Log("Collision"); _landing = true; } public void FixedUpdate() { if (!_landing) { return; } _rb.velocity = Vector3.zero; _landing = false; } } So at the first collision, I try to instant stop the cube with `_rb.velocity = Vector3.zero;`. But *changing velocity has no effect*, I dont understand why. I've tried with many value to see what happens... but nothing happened. The only thing I can add, and it's working, is: `AddForce()` I tried to a negative value, but this doesn't work either. What did I forgot? Here's a video I hope this is easy to understand (and I hope I'm allowed to help with a video):
If you watch the video you'll see it runs when it hits something, but once. This should give something like: - "you hit something, you instant stop" - Unity physics takes control again, and if it has to fall, it falls again or it goes to sleep in .5 s - if it falls again, restart the loop This is the "basic" code. So it should instant stop when it hits something with no rebound at all.