- Home /
How to get the time of impact for two objects moving in different directions?
First of all, I can´t use Unity´s physics system. Then I have an object on the wall and one on the ground. Both move in different directions and a rigidbody might get stuck in between. I want to simulate a collision if that happens, so I need to get the time of impact if it´s being pressed from opposite sides. Assuming is static, the objects should push it until they collide. I can move the rigidbody based on the first collider´s direction, so basically I need to see which object collides first (in case is hanging in the air, else is the platform it is standing) and see if there´s a second collision from the opposite side, which I get from the time of impact. But I don´t know the time of impact, I only know the initial and end positions of the three objects.
Answer by Dorscherl · Nov 09, 2019 at 05:50 AM
I recommend using the OnCollisionEnter. This method gets called when your rigidbody first makes contact with a collider. There are other methods that you could also make use of: OnCollisionEnter, OnCollisionStay, & OnCollisionExit. When it enters you could set the time of impact.
Thanks for your reply, but what if the objects move too fast and at the final positions they aren´t colliding? Then OnCollision methods wouldn´t get called. Besides, if am understanding correctly, you are suggesting to call them when they are already overlapping and set that moment as the time of impact (which wouldn´t work because, if this is from frame to frame and in the first frame they weren´t colliding, we set the time of the second frame which is the end of the time lapse and not likely the time of impact). And even if we were to place those methods in FixedUpdate(), because their positions get updated in Update() and becase the final positions won´t probably be where they collide, there wouldn´t be a difference. (I think they are called in FixedUpdate() but I don´t really remember).
Your answer
Follow this Question
Related Questions
How to detect collision when Time.timeScale == 0? 2 Answers
Calculating a bullet time of impact based on speed and distance 1 Answer
Creating an Authoritative Client and Server 1 Answer
How to stop object from going through walls. 4 Answers
Why is OnCollisionStay activating before collisions? 2 Answers