Adding force to a prefab

I’m trying to add force once a prefab collides with another object. The prefab has been instantiated with velocity and is already flying through the game.

The first script that is attached to a different object to instantiate:

var instance : Rigidbody2D = Instantiate(Fish,transform.position, transform.rotation);
  instance.velocity = transform.TransformDirection(Vector2 (Speed *0.5,Speed*1.8));

The collision Script:

function OnCollisionEnter2D(coll: Collision2D) {
	if (coll.gameObject.tag == "Fat_Guy"){
	FishBounce();
}
}

function FishBounce(){
    rigidbody2D.AddForce(Vector2.up * Speed);
	Debug.Log("Fly");
	//Destroy(gameObject);
}

Thanks,

I found this it may be helpful for you

http://forum.unity3d.com/threads/21138-Projectile-Bounce-Problem

Check all Colliders in the hierachy of both the bouncing object and the thing it bounces off of. Multiple nested colliders can cause strange deflections and unstable instantiations.

maybe you should use add force, so every time you hit the collider, your object get a force that bounces your object up…

I got this working the problem I had was with another rigidbody that was causing an issue.

function OnCollisionEnter2D(coll: Collision2D) {
	
	if (coll.gameObject.tag == "Fat_Guy")
	{
	FishBounce();
	//Destroy(gameObject);
	}
	
	if (coll.gameObject.tag == "OffScreen")
	{
	Destroy(gameObject);
	}
}

function FishBounce(){
	var curVel: Vector2 = rigidbody2D.velocity;
	curVel.y = 20 ; // max speed = 5
	curVel.x = 5 ;
	rigidbody2D.velocity = curVel;


	Debug.Log("Speed");
	//Destroy(gameObject);

}