AddForceAtPosition instead of using rigidbody physics

I am trying to create a weapon script that instantiates a bullet rigidbody, and can hit other rigidbody objects.
The problem I am having is I can’t have the bullet moving too slowly, because bullets are typically very fast, and if I make the bullets at a more realistic speed the bullet will clip through rigidbodies.

So how would I be able to AddForceAtPosition when the bullet collides.

This is my code:

var bullet : Transform;
var bulletSpawn : Transform;
function Update () {

if(Input.GetButton("Fire1")){
	var forward = bulletSpawn.transform.forward;
	var instantiatedBullet =  Instantiate(bullet, bulletSpawn.transform.position, Quaternion.identity);
	instantiatedBullet.rigidbody.AddForce(forward * 1000);	
	instantiatedBullet.rotation=bulletSpawn.rotation;
}

}

If you can consider a bullet to be a “point” you could do this by making a physics raycast from the current position, in the direction of travel, for the distance that will be moved in the next frame.

You would do that in FixedUpdate and detect the collision yourself.

The ray cast will give you the object hit and the position at which it was struck - then you could apply the force there and kill your bullet.

Doing this would save the physics simulation of the bullet, which is probably a bit pointess for a small and fast moving projectile. @flamy is right, if you want fast moving objects to intersect then you need to set the continuous dynamic mode, which is costly and probably not worth it if bullets can’t hit other bullets or other fast moving objects.