- Home /
Rigidbody2D won't apply force after collision
I'm trying to make an animal object jump after it touches a platform, similar to Sonic when you destroy an enemy and they jump around when they come out of the badnik. I got the initial force when the baddie is destroyed to apply perfectly, but when it touches the ground no force is added. Debug.Log shows up, but no other commands seem to work like, addforce or even destroy.
Here's the code for the script I'm using.
public class AnimalJump : MonoBehaviour {
public Rigidbody2D body;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.Space)) {
animalJump ();
}
}
void animalJump(){
body.AddForce(new Vector2(-15, 15));
}
void OnCollisionEnter2D(Collision2D col){
if (col.collider.name == "Ground") {
Debug.Log ("sdf");
body.AddForce(new Vector2(15, 15));
}
}
}
When the object touches the platform called, "Ground" the debug log still goes through but for some reason no other commands seem to be going through.
Just to clarify I'm only using KeyCode.Space to test destroying the baddie, I have other scripts that remove the baddie and creates a small smoke cloud when I press enter, and then the animal is enabled. If I spam space bar the object will continuously "jump", so yes the rigidbody component has been serialized in the interface. I'm completely lost as to why this is happening.
Your answer
![](https://koobas.hobune.stream/wayback/20220612070051im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
When to use OnCollisionEnter and OnTriggerStay and how to use rigidbody.AddForce 1 Answer
RigidBody2D - AddForce - KnockBack Effect. 1 Answer
Rigidbody not calling OnCollisionEnter 1 Answer
Adding force on collision performance question. 1 Answer
Making an object move in the direction it's faceing. 1 Answer