I've been researching this for weeks and only found bad results. I think its time for a good answer. I have a rocket launcher, so I can't "fake" the bullet. There is no way to fake a rocket. I need it to shoot from the front of the gun and fly to the center of the screen. Of course I could just make the weapon slanted to the center, but if you look at far targets, it will miss; and if you look at close targets it will also miss. Can I have an empty in the center of the screen that just collides with obstacles, and the gun just adds the projectile to make it always hit center? If that's the case, I would kindly ask for help on how to do that. If there is a better technique, please state it, it would help a lot!
-People said they are confused, let me explain more thoroughly.
I want to have a line in front of the camera that collides with obstacles(for example, and object with property "obstacle" set to 1), that is stopping at infinity, but there is will obviously always be an obstacle to hit, such as a roof if you look up(indoor). The empty will always track to the very end of the line, so if you aim somewhere close, the rocket will hit center of screen and hit the close object, and if you hit far, on the other hand, the rocket will fly to center of screen and hit the obstacle still. So you will basically always hit the center of the screen no matter what.