Unrealistic Fps Shooting?

Right now, I added this code to my camera

function Update()
{

if(Input.GetMouseButton(0))

{
var forward = transform.TransformDirection(Vector3.forward);
var hitInfo : RaycastHit;
if (Physics.Raycast (transform.position, forward, hitInfo, 1000)) 
{hitInfo.rigidbody.AddForce (forward * 50);
}
}

This isn't good because it just tells the rigidbody to go the opposite direction where ever the bullet hit it. I want the rigidbody to react as if a bullet rigidbody hit it. How can i do this? Thanks!

Try AddForceAtPosition instead of AddForce and place the hit position in its argument. Now you are adding force at the pivot, no matter where the bullet hits.

http://unity3d.com/support/documentation/ScriptReference/Rigidbody.AddForceAtPosition.html

Edit:

if(Input.GetMouseButton(0))

{
var forward = transform.TransformDirection(Vector3.forward);

var hitInfo : RaycastHit;

if (Physics.Raycast (transform.position, forward, hitInfo, 1000)) 
{

    var hitDirection:Vector3 = (hitInfo.point - transform.position).normalized; // the bullet direction. 
  hitInfo.rigidbody.AddForceAtPosition (hitInfo.point,hitDirection * 50);

}
}

the hit direction is multiplied by 50. I'm not sure but that could be a great force. depends on your object as well.