I’m working on an FPS, using most of my own code but with some stuff from the FPS tutorial. I’m trying to make sure the bullet actually ends up where the crosshair (a GUITexture) is, no matter how far away the target is. Basically, I want to have my bullet collide with the thing I’m shooting at at the exact place where my crosshair shows up, whether I’m shooting at something close in or far away.
Right now I’m using Physics.Raycast
from the camera to figure out what the crosshair is on, which gives me the precise vector along which my bullet needs to travel, but I don’t know how best to make the bullet follow that vector. Should I fudge the bullet’s rotation so that I can then use transform.forward
for the velocity, or should I leave the rotation the same as for the weapon and skew the bullet’s velocity?
Stated differently, is it better to have the bullet rotated differently than the weapon, or is it better to have the bullet moving in a direction that’s not quite forward?