- Home /
How do I apply a force to the other object in a collision?
I'm really new at this. Right now I have a sphere that is bouncing around in a flat level.
I've used materials to keep the sphere from losing energy if it hits the floor, but now I would like to add a section of floor that if the sphere lands on top of, will add force to the sphere in the upwards direction.
Is there a script I could add to the specific section of floor that basically says "if an object collides with me, add force to that object in the upwards direction."
More info:
-The section of floor is currently a box collider.
-The sphere is a sphere collider and a rigidbody.
After a bit of googling I came across something like this (I messed around with the 1700 to just try to see if it wasn't enough force):
function OnCollisionEnter(collision : Collision) {
if (collision.rigidbody) {
collision.rigidbody.AddForce (Vector3.up * 1700);
}
}
but it doesn't work when I put the code on the floor section. Would you be able to explain how to do what I want and why the above code doesn't work?
Thanks.
Answer by Jesse Anders · Dec 14, 2010 at 09:13 PM
Try submitting ForceMode.Impulse as the second argument to AddForce(). (As your code is now, you're only applying the force over one update - or maybe even no updates, although I'm not sure about that - which is unlikely to have any noticeable effect.)
Your answer
![](https://koobas.hobune.stream/wayback/20220613091030im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How do I slow down addforce initially? 1 Answer
Rigidbody not calling OnCollisionEnter 1 Answer
Face forward direction of movement 3 Answers
Finding collision force not working in certain situations. 0 Answers
AddForce to object 3 Answers